[
  {
    "path": ".github/workflows/publish_action.yml",
    "content": "name: Publish to Comfy registry\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - main\n    paths:\n      - \"pyproject.toml\"\n\njobs:\n  publish-node:\n    name: Publish Custom Node to registry\n    runs-on: ubuntu-latest\n    steps:\n      - name: Check out code\n        uses: actions/checkout@v4\n      - name: Publish Custom Node\n        uses: Comfy-Org/publish-node-action@main\n        with:\n          personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}"
  },
  {
    "path": ".gitignore",
    "content": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# poetry\n#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control\n#poetry.lock\n\n# pdm\n#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.\n#pdm.lock\n#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it\n#   in version control.\n#   https://pdm.fming.dev/#use-with-ide\n.pdm.toml\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# PyCharm\n#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can\n#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore\n#  and can be added to the global gitignore or merged into this file.  For a more nuclear\n#  option (not recommended) you can uncomment the following to ignore the entire idea folder.\n#.idea/\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": "# ComfyUI InstantID FaceSwap v0.1.1\n<sub>[About](#comfyui-instantid-faceswap-v011) | [Installation guide](#installation-guide) | [Custom nodes](#custom-nodes) | [Workflows](#workflows) | [Tips](#tips) | [Changelog](#changelog)</sub>\n\nImplementation of [faceswap](https://github.com/nosiu/InstantID-faceswap/tree/main) based on [InstantID](https://github.com/InstantID/InstantID) for ComfyUI. \\\nSince version 0.1.0 it also allows generating people based on text.\n</br>\n**Works ONLY with SDXL checkpoints**\n</br>\n</br>\n![image](https://github.com/user-attachments/assets/0c97dccf-ac8a-43f7-b50b-8bbf7ed81049)\n\n![image](https://github.com/user-attachments/assets/bbc88aaf-fba4-43f1-80ea-fece379308db)\n\n\n\n## Installation guide\n<sub>[About](#comfyui-instantid-faceswap-v011) | [Installation guide](#installation-guide) | [Custom nodes](#custom-nodes) | [Workflows](#workflows) | [Tips](#tips) | [Changelog](#changelog)</sub>\n\n1. Clone or download this repository and put it into **ComfyUI/custom_nodes**\n2. Open commandline in the  **ComfyUI/custom_nodes/comfyui-instantId-faceswap/** folder and type `pip install -r requirements.txt` to install dependencies\n3. Manually download required files and create required folders:\n    - [antelopev2 models](https://huggingface.co/DIAMONIK7777/antelopev2/tree/main)\n      and put them into **ComfyUI/models/insightface/models/antelopev2** folder\n       -  1k3d68.onnx\n       -  2d106det.onnx\n       -  genderage.onnx\n       -  glintr100.onnx\n       -  scrfd_10g_bnkps.onnx\n\n    - [IpAdapter and ControlNet](https://huggingface.co/InstantX/InstantID/tree/main)\n       - ip-adapter.bin - put it into **ComfyUI/models/ipadapter**\n       - ControlNetModel/diffusion_pytorch_model.safetensors and ControlNetModel/config.json  - put those files in new folder in  **ComfyUI/models/controlnet**\n\nNewly added files hierarchy should look like this:\n```\nComfyUI\n\\---models\n    \\---ipadapter\n           ipadapter.bin\n    \\---controlnet\n        \\--- FOLDER_YOU_CREATED\n              config.json\n              diffusion_pytorch_model.safetensors\n    \\---insightface\n        \\---models\n            \\antelopev2\n                  1k3d68.onnx\n                  2d106det.onnx\n                  genderage.onnx\n                  glintr100.onnx\n                  scrfd_10g_bnkps.onnx\n```\n\n*Note You don't need to add the 'ipadapter', and 'controlnet' folders to this specific location if you already have them somewhere else (also you can rename ipadapter.bin and ControlNetModel to something of your liking).\nInstead, You can edit `ComfyUI/extra_model_paths.yaml` and add folders containing those files to the config.\n\n## Custom nodes\n<sub>[About](#comfyui-instantid-faceswap-v011) | [Installation guide](#installation-guide) | [Custom nodes](#custom-nodes) | [Workflows](#workflows) | [Tips](#tips) | [Changelog](#changelog)</sub>\n\n- ### Load Insightface:\n   Loads Insightface. Models need to be in a specific location. Check the  [Installation guide](#installation-guide) for details.\n\n- ### Load instantId adapter:\n   Loads the InstantId adapter and resampler. The model needs to be in a specific location. Check the [Installation guide](#installation-guide) for details. The resampler is used to prepare face embeds for ControlNet and the adapter.\n\n- ### Apply instantId adapter:\n   Applies the InstantId adapter to the model. This is optional—you can achieve good results without using this node.\n\n   **Params:**\n   - **checkpoint** - SDXL checkpoint\n   - **instantId_adapter** - intantId adapter\n   - **face_conditioning** - face conditioning prepared by the resampler\n   - **strength** - strength of the instantId adapter\n\n- ### Apply instantId ControlNet:\n   Applies InstantId ControlNet.\n\n   **Params:**\n   - **positive**  - positive prompts\n   - **negative**  - negative prompts\n   - **face_conditioning** - face conditioning prepared by the resampler\n   - **control_net** - instantId Controlnet\n   - **strength** - strength of instantId ControlNet\n\n- ### Apply instantId and ControlNet:\n    A subgraph node that bundles several operations into a single node for convenience. It includes the following nodes: LoadInstantIdAdapter, FaceEmbedCombine, ControlNetLoader, InstantIdAdapterApply, and ControlNetInstantIdApply.\n\n    This node streamlines the process by loading the InstantId adapter, combining face embeddings, loading the ControlNet, and applying both the InstantId adapter and ControlNet in one step.\n\n- ### FaceEmbed for instantId\n   Prepares face embeds for generation. You can chain multiple face embeds.\n\n   **Params:**\n   - **insightface** - insightface\n   - **face_image** - input image from which to extract embed data\n   - **face_embeds** (*optional*) - additional face embed(s)\n\n- ### FaceEmbed Combine\n   Prepares face embeds for ControlNet and the adapter.\n\n   **Params:**\n   - **resampler** - resampler\n   - **face_embeds** - face_embeds\n\n- ### Get Angle from face\n   Returns the angle (in degrees) by which the image must be rotated counterclockwise to align the face. Since there can be more than one face in the image, face search is performed only in the area of the drawn mask, enlarged by the pad parameter.\n\n   **Note:** If the face is rotated by an extreme angle, insightface won't be able to find the correct position of face keypoints, so the rotation angle might not always be accurate. In these cases, manually draw your own KPS.\n\n\n   **Params:**\n   - **insightface** - insightface\n   - **image** - image with the face to rotate\n   - **mask** - mask\n   - **rotate_mode** - available options:\n      - *none* - returns 0\n      - *loseless* - returns the closest angle to 90, 180, 270 degrees\n      - *any* - returns a specific angle by which the image should be rotated\n   - **pad_top** - how many pixels to enlarge the mask upwards\n   - **pad_right** - how many pixels to enlarge the mask to the right\n   - **pad_bottom** - how many pixels to enlarge the mask downwards\n   - **pad_left**  -  how many pixels to enlarge the mask to the left\n\n\n- ### Get Angle from KPS data\n   Returns the angle (in degrees) by which the image must be rotated counterclockwise to align the face.\n\n   **Params:**\n   - **rotate_mode** - available options:\n      - *none* - returns 0\n      - *loseless* - returns the closest angle to 90, 180, 270 degrees\n      - *any* - returns a specific angle by which the image should be rotated\n\n\n- ### Rotate Image\n   Rotates the image by the given angle and expands it.\n\n   **Params:**\n  - **image** - image\n  - **angle** - angle\n  - **counter_clockwise** - direction\n\n- ### Remove rotation padding\n   Removes the expanded region added by two rotations (first to align the face, and second to return to the original position).\n\n   **Params:**\n  - **original_image** - image before rotation\n  - **rotated_image** - rotated image\n\n- ### Draw KPS\n   Allows you to draw your own keypoints (KPS), useful when you get the error `\"No face detected in pose image\"` or when using InstantId to generate images from prompts only. Click and drag the KPS to move them around.\n\n   When you place your KPS in the desired position, this node will show the angle by which the image should be rotated to align the face.\n\n   You can adjust the opacity of each keypoint to sacrifice likeness, for example, when adding \"glasses\".\n\n   **Shortcuts:**\\\n      **CTRL + DRAG** - move around\\\n      **CTRL + WHEEL** - zoom in / out\\\n      **ALT + WHEEL** - decrease / increase distance of other points from blue point (nose kps)\n\n   **Params:**\n   - **image_reference** (optional) - an image that serves as a background to more accurately match the appropriate points. If provided, the resulting image will have the width and height of this image.\n   - **width** - width of the image (disabled if `image_reference` is provided)\n   - **height** - height of the image (disabled if `image_reference` is provided)\n\n- ### 3d KPS from image\n   Allows you to extract 3D keypoints (KPS) of a face from an image. This is useful when generating content from text prompts and wanting to rotate the face while preserving the distance between the eyes, nose, and mouth.\n\n   To use it, connect the `image` node, then click the **\"Get KPS From Image\"** button. Afterward, you can adjust the scale, position, and rotation of the face by clicking the **\"Change KPS\"** button.\n\n   **IMPORTANT:** \n      - Clicking Get KPS From Image will run InsightFace to extract KPS data, so it’s best not to use this in the middle of the generation process (this depends on your system's performance).\n      - You cannot manually change the distance between KPS in this node.\n\n   Once your KPS are placed in the desired position, the node will show the angle by which the image should be rotated to align the face.\n\n   You can adjust the opacity of each keypoint to sacrifice likeness, for example, when adding \"glasses\".\n\n   **Shortcuts:**\\\n      **CTRL + DRAG** - move around\\\n      **CTRL + WHEEL** - zoom in / out\\\n      **ALT + WHEEL** - scale KPS\n\n   **Params:**\n   - **image** - an image of face from which KPS will be calculated\n   - **width** - width of the image\n   - **height** - height of the image\n\n\n- ### Preprocess image for instantId:\n   Cuts out the mask area wrapped in a square, enlarges it in each direction by the `pad` parameter, and resizes it (to dimensions rounded down to multiples of 8). It also creates a control image for InstantId ControlNet.\n\n   **Note:** If the face is rotated by an extreme angle, the prepared `control_image` may be drawn incorrectly.\n\n   If the `insightface` param is not provided, it will not create a control image, and you can use this node as a regular node for inpainting (to cut the masked region with padding and later compose it).\n\n   **Params:**\n   - **image** - your pose image (the image in which the face will be swapped)\n   - **mask** - drawn mask (the area to be changed must contain the face; you can also mask other features like hair or hats and change them later with prompts)\n   - **insightface** (optional) - loaded insightface\n   - **width** - width of the image in pixels (check `resize_mode`)\n   - **height** - height of the image in pixels, check `resize_mode`\n   - **resize_mode** - available options:\n      - *auto* - automatically calculates the image size so that the area is `width` x ` height`.\n         For SDXL, you probably want to use this option with:\n         **width: 1024, height: 1024**\n      - *scale by width* -  ignores provided `height` and calculates it based on the aspect ratio\n      - *scale by height* - ignores provided `width` and calculates it based on the aspect ratio\n      - *free* - uses the provided `width` and `height`\n   - **pad** - how many pixels to enlarge the mask in each direction\n\n- ### Preprocess image for instantId (Advanced):\n   Same as **Preprocess Image for InstantId** with five additional parameters.\n\n   **Params:**\n   - **upscale_method**  - *nearest-exact*, *bilinear*, *area*, *bicubic*, *lanczos*\n   - **pad_top** - how many pixels to enlarge the mask upwards\n   - **pad_right** - how many pixels to enlarge the mask to the right\n   - **pad_bottom** - how many pixels to enlarge the mask downwards\n   - **pad_left**  -  how many pixels to enlarge the mask to the left\n\n\n- ### Randomize 2d KPS\n   Randomizes the position, angle, and rotation of the KPS based on the provided parameters.\n\n   **Params:**\n   - **angle_min** - minimum rotation angle. The rotation point is the center of the KPS,\n   - **angle_max** - maximum rotation angle, the rotation point is the center of the KPS,\n   - **scale_min** - minimum scaling value relative to the KPS center (1 means no scaling),\n   - **scale_max** - maximum scaling value relative to the KPS center (1 means no scaling),\n   - **translate_x** - value by which to shift the KPS along the X axis. For example, setting it to 200 will randomly select a shift value between -200 and 200,\n   - **translate_y** - value by which to shift the KPS along the Y axis. For example, setting it to 200 will randomly select a shift value between -200 and 200,\n   - **border** - edge threshold; if the KPS gets too close to the image border during translation, rotation, or scaling, it will be repositioned to this value\n\n\n- ### Randomize 3d KPS\n   Randomizes the rotation of the KPS around three axes. Setting any of the parameters will randomly select a rotation angle around the corresponding axis. The rotation point is the center of the KPS.\n   Example: Setting rotate_x to 20 will rotate the KPS by a random angle between -20 and 20 degrees.\n\n   **Params:**\n   - **rotate_x** - rotation angle around the X axis,\n   - **rotaet_y** - rotation angle around the Y axis,\n   - **rotate_z** - rotation angle around the Z axis,\n\n\n- ### Scale 2d KPS by\n   Scales the KPS data by a given factor.\n\n   **Params:**\n   - **scale**: scaling factor\n\n\n- ### Scale 2d KPS\n   Scales the KPS data to the specified width and height.\n\n   **Params:**\n   - **width**: desired width,\n   - **height**: desired height\n\n\n- ### Rotate 2d KPS\n   Rotates the KPS by the given angle and expands it.\n\n   **Params:**\n   - **angle**: rotation angle\n\n\n - ### Crop 2d KPS\n   Crops the KPS.\n\n   **Params:**\n   - **x**: X coordinate of the top-left corner,\n   - **y**: Y coordinate of the top-left corner,\n   - **width**:  width of the cropped area,\n   - **height**: height of the cropped area,\n\n\n - ### Create KPS Image\n   Creates a control_image from `kps_data`\n\n\n - ### Create mask from Kps\n   Creates a mask based on the KPS position.\n\n   **Params:**\n   - **grow_by** - expands the mask by adding extra space on all sides. The additional margin on each side is equal to the mask’s dimension divided by this value. For example, if the KPS width is 20 pixels and grow_by is set to 10, an extra 20/10 (i.e., 2 pixels) will be added to the left and right sides — resulting in a new width of 20 + 2 + 2 = 24 pixels. The same applies to the height.\n\n## Workflows\n<sub>[About](#comfyui-instantid-faceswap-v011) | [Installation guide](#installation-guide) | [Custom nodes](#custom-nodes) | [Workflows](#workflows) | [Tips](#tips) | [Changelog](#changelog)</sub>\n\n\nYou can find example workflows in the `/workflows` folder.\nNodes colors legend: \\\n**yellow** - node from this extension,\\\n**blue** - inputs, load your controlnets, models, images ...\\\n**purple** - you might want to configure those\\\n**cyan** - output images\\\n**green** - positive prompts\\\n**red** - negative prompts\n\nIf you set the mask blur options remember that it will shrink the area you masked\n\n### simple.json\nFace swap: Set your pose image, draw a mask, set your face reference (the face that will replace the masked area in the pose image), and that's it.\n\n### simple_with_adapter.json\nSame as `simple.json` with an additional node `Apply instantId adapter`\n\n### simple_two_embeds.json\nSame as `simple.json`, but allows you to provide two face references. You can use this to merge two different faces or just provide a second reference for the first face.\n\n### draw_kps.json\nFace swap: Set your pose image, draw a mask, set your face reference (the face that will replace the masked area in the pose image), and then click the \"draw KPS\" button on the `Draw KPS` node to set your KPS.\n\n<details>\n  <summary>View Example Image</summary\n                                 \n  ![DRAW KPS](https://github.com/user-attachments/assets/9c87fa80-bb51-4df5-aca8-8cfee3d1668b)\n</details>\n\n### draw_kps_rotate.json\nSame as `draw_kps.json`, but it will also rotate the pose image. After setting your KPS, you should set the angle by which you want to rotate the image to align the face properly.\n\n<details>\n  <summary>View Example Image</summary\n                                 \n  ![KPS SET ANGLE](https://github.com/user-attachments/assets/665dbfdd-79ce-47a0-9004-40c0cf48596c)\n</details>\n\n### auto_rotate.json\nSame as `simple_with_adapter.json`, but it will automatically detect the angle of rotation based on the mask and padding set in the `Get Angle from Face` node.\n\n### promp2image.json\nGenerates an image based only on the face reference and prompts. Set your face reference, draw the KPS where the face should be drawn, and add prompts like \"man sitting in the park.\"\n\n### promp2image_detail_pass.json\nSame as `prompt2image.json`, but this one expects the KPS you draw to be small, so the face is not detailed (or may even be deformed). Second pass should fix the face.\n\n\n### prompts2img_2faces_enhancement.json\nA workflow that generates two faces in one image and enhances them one by one.\nSet your face references and KPS for one image, then set a second KPS in another region of the picture. Good results depend on your prompts.\n\n<details>\n  <summary>View Example Image</summary>\n    \n  ![Two KPS one flow](https://github.com/user-attachments/assets/fbaa38df-3400-401d-b644-087723e6488c)\n</details>\n\n### inpaint.json\nSince you can use the `Preprocess Image for InstantId` and `Preprocess Image for InstantId (Advanced)` nodes to resize your images with a mask, this workflow is useful for inpainting in general. This workflow shows you how to do it.\n\n<details>\n  <summary>View Example Image</summary>\n    \n  ![basic inpaint](https://github.com/user-attachments/assets/bda258b1-a988-47f5-beb6-105289c990ac)\n\n</details>\n\n### prop2image_latent_upscale.json\nSimilar to `promp2image_detail_pass.json`, this workflow allows you to draw your KPS. The workflow will run a first pass at 50%, upscale the latent by `1.4`, and finish with a detail pass on the face area.\n\n### prop2image_latent_upscale_with_2d_randomizer.json\nSame as `prop2image_latent_upscale.json`, but it will randomize the position of the face within the image.\n\n### prop2image_latent_upscale_with_3d_and_2d_randomizer.json\nSimilar to `prop2image_latent_upscale_with_2d_randomizer.json`, but instead of drawing your KPS, you retrieve them from a face image (in 3d).\nClick the **\"Get KPS from image\"** button on the 3D KPS from Image node, then use the **\"Change KPS\"** button to adjust the position of your KPS. You can also randomize the 3D rotation in this workflow.\n\n### prop2image_latent_upscale_with_3d_and_2d_randomizer_with_rotation.json\nExactly the same as `prop2image_latent_upscale_with_3d_and_2d_randomizer.json`, with one small addition: you can set the face rotation method during the last pass. The workflow will rotate the face to a \"straight\" position, process the image, and then composite it into the final result.\n\nThe default rotation is set to \"any,\" so you might encounter some artifacts from the rotation. You can adjust this setting as needed.\n\n## Tips\n<sub>[About](#comfyui-instantid-faceswap-v011) | [Installation guide](#installation-guide) | [Custom nodes](#custom-nodes) | [Workflows](#workflows) | [Tips](#tips) | [Changelog](#changelog)</sub>\n\n- Most workflows require you to draw a mask on the pose image.\n- If you encounter the error `No face detected in pose image`, try drawing a larger mask or increasing the `pad` parameter or draw KPS yourself.\n- You can adjust the opacity of each keypoint to preserve original features or rely more on your prompts without sacrificing the overall likeness of the face.\n- You can modify more than just the face — add accessories like a hat, change hair, or even alter expressions.\n- If you're changing a lot of elements unrelated to the face, it's a good idea to add a second pass focused primarily on the face area to enhance detail.\n- To improve results, you can integrate other extensions such as ControlNet for inpainting, Fooocus inpaint, FaceShaper, Expression Lora, and many more.\n- To understand the relationship between ControlNet and the adapter, check the official paper linked in the instantId repository: https://github.com/instantX-research/InstantID?tab=readme-ov-file\n\n## Changelog\n<sub>[About](#comfyui-instantid-faceswap-v011) | [Installation guide](#installation-guide) | [Custom nodes](#custom-nodes) | [Workflows](#workflows) | [Tips](#tips) | [Changelog](#changelog)</sub>\n\n- ### 0.1.1 (03.03.2025)\n   - Introduced new nodes to ensure proper KPS size.\n   - Removed the ability to draw masks on the KPS node (a separate node is available for this).\n   - Added the ability to add transparency to individual KPS, providing similar functionality as `ControlNet Scale` but for specific parts of the face (e.g., adding glasses).\n   - The generation of KPS control images has been entirely moved to the backend (Python). You can still draw KPS manually, but this change reduces the creation of temporary files.\n   - Drawn KPS positions are now saved into the workflow.\n   - Added the ability to import 3D KPS positions from the face, allowing rotation, scaling, and movement of those points while preserving the distance between the eyes, nose, and mouth.\n   - Added options to randomize position, rotation, and KPS scaling to diversify final images.\n   - Added the ability to randomize 3D face rotation to further diversify results.\n   - To diversify results even further, you can use tools like [comfyui-text-randomizer](https://github.com/nosiu/comfyui-text-randomizer), which was created as a side project during the development of this repository.\n\n   **Note:** Some old workflows will not be compatible with this version.\n\n\n- ### 0.1.0 (20.10.2024)\n   - The code was rewritten from scratch and now uses the ComfyUI backend. This allows you to chain LORAs or ControlNets as needed, providing greater control over the entire process.\nFor example, you can now draw your own KPS, enabling both text-to-image and image-to-image generation.\n   - Removed most dependencies (including Diffusers).\n   - Removed all old nodes and introduced new ones.\n   - The script that automatically generated workflows based on all faces in a specific catalog has been removed.\n\n   **Note:** Old workflows will not work with this version.\n\n\n- ### 0.0.5 (25.02.2024)\n   - The `mask_strength` parameter has been fixed; it now functions correctly. Previously, it was stuck at *0.9999* regardless of the chosen value.\n   - The `ip_adapter_scale` parameter has been fixed. If you were using the xformers, this parameter could be stuck at *50*.\n   - Changed the method of processing face_embed(s).\n   - Added the `rotate_face` parameter. It will attempt to rotate the image to keep the face straight before processing and rotate it back to the original position afterward.\n\n- ### 0.0.4 (14.02.2024)\n   - To save memory, you can run Comfy with the `--fp16-vae` argument to disable the default VAE upcasting to float32.\n   - Merged the old `resize` and `resize_to` options into just `resize` for the Faceswap generate node. To emulate the old behavior where resize was unchecked, select `don't`.\n   - Added a manual offload mechanism to save GPU memory.\n   - Changed the minimum and maximum values for `mask_strength` to range from 0.00 to 1.00.\n- ### 0.0.3 (07.02.2024)\n   - Fixed an error that caused new face_embeds to be added when editing previous ones\n- ### 0.0.2 (05.02.2024)\n   - Introducing workflow generator script - [more information here](#workflow-script-beta)\n   - Updating the dependency diffusers to version 0.26.x. Run either:\n   ```bash\n   pip install -r requirements.txt\n   ```\n   or\n   ```bash\n   pip install -U diffusers~=0.26.0\n   ```\n\n- ### 0.0.1 (01.02.2024)\n  - Progress bar and latent preview added for generation node\n\n"
  },
  {
    "path": "__init__.py",
    "content": "from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS\nWEB_DIRECTORY = './ui/'\n\n__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY']"
  },
  {
    "path": "ip_adapter/instantId.py",
    "content": "import torch\nfrom comfy.ldm.modules.attention import optimized_attention\n\nclass InstantId(torch.nn.Module):\n  def __init__(self, ip_adapter):\n    super().__init__()\n\n    self.to_kvs = torch.nn.ModuleDict()\n\n    for key, value in ip_adapter.items():\n      k = key.replace(\".weight\", \"\").replace(\".\", \"_\")\n      self.to_kvs[k] = torch.nn.Linear(value.shape[1], value.shape[0], bias=False)\n      self.to_kvs[k].weight.data = value\n\n\n# based on https://github.com/laksjdjf/IPAdapter-ComfyUI/blob/main/ip_adapter.py#L256\nclass CrossAttentionPatch:\n  def __init__(self, scale, instantId, cond, number):\n    self.scales = [scale]\n    self.instantIds = [instantId]\n    self.conds = [cond]\n    self.number = number\n\n  def set_new_condition(self, scale, instantId, cond, number):\n    self.scales.append(scale)\n    self.instantIds.append(instantId)\n    self.conds.append(cond)\n    self.number = number\n\n  def __call__(self, q, k, v, extra_options):\n    dtype = torch.float16\n    hidden_states = optimized_attention(q, k, v, extra_options[\"n_heads\"])\n    for scale, cond, instantId in zip(self.scales, self.conds,  self.instantIds):\n      k_cond = instantId.to_kvs[str(self.number*2+1) + \"_to_k_ip\"](cond).to(dtype=dtype)\n      v_cond = instantId.to_kvs[str(self.number*2+1) + \"_to_v_ip\"](cond).to(dtype=dtype)\n      ip_hidden_states = optimized_attention(q, k_cond, v_cond, extra_options[\"n_heads\"])\n      hidden_states = hidden_states + ip_hidden_states * scale\n      return hidden_states.to(dtype=dtype)"
  },
  {
    "path": "ip_adapter/resampler.py",
    "content": "# modified from https://github.com/mlfoundations/open_flamingo/blob/main/open_flamingo/src/helpers.py\nimport math\n\nimport torch\nimport torch.nn as nn\n\n# FFN\ndef FeedForward(dim, mult=4):\n  inner_dim = int(dim * mult)\n  return nn.Sequential(\n    nn.LayerNorm(dim),\n    nn.Linear(dim, inner_dim, bias=False),\n    nn.GELU(),\n    nn.Linear(inner_dim, dim, bias=False),\n  )\n\ndef reshape_tensor(x, heads):\n  bs, length, _ = x.shape\n  #(bs, length, width) --> (bs, length, n_heads, dim_per_head)\n  x = x.view(bs, length, heads, -1)\n  # (bs, length, n_heads, dim_per_head) --> (bs, n_heads, length, dim_per_head)\n  x = x.transpose(1, 2)\n  # (bs, n_heads, length, dim_per_head) --> (bs*n_heads, length, dim_per_head)\n  x = x.reshape(bs, heads, length, -1)\n  return x\n\n\nclass PerceiverAttention(nn.Module):\n  def __init__(self, *, dim, dim_head=64, heads=8):\n    super().__init__()\n    self.scale = dim_head**-0.5\n    self.dim_head = dim_head\n    self.heads = heads\n    inner_dim = dim_head * heads\n\n    self.norm1 = nn.LayerNorm(dim)\n    self.norm2 = nn.LayerNorm(dim)\n\n    self.to_q = nn.Linear(dim, inner_dim, bias=False)\n    self.to_kv = nn.Linear(dim, inner_dim * 2, bias=False)\n    self.to_out = nn.Linear(inner_dim, dim, bias=False)\n\n  def forward(self, x, latents):\n    \"\"\"\n    Args:\n        x (torch.Tensor): image features\n            shape (b, n1, D)\n        latent (torch.Tensor): latent features\n            shape (b, n2, D)\n    \"\"\"\n    x = self.norm1(x)\n    latents = self.norm2(latents)\n\n    b, l, _ = latents.shape\n\n    q = self.to_q(latents)\n    kv_input = torch.cat((x, latents), dim=-2)\n    k, v = self.to_kv(kv_input).chunk(2, dim=-1)\n\n    q = reshape_tensor(q, self.heads)\n    k = reshape_tensor(k, self.heads)\n    v = reshape_tensor(v, self.heads)\n\n    # attention\n    scale = 1 / math.sqrt(math.sqrt(self.dim_head))\n    weight = (q * scale) @ (k * scale).transpose(-2, -1) # More stable with f16 than dividing afterwards\n    weight = torch.softmax(weight.float(), dim=-1).type(weight.dtype)\n    out = weight @ v\n\n    out = out.permute(0, 2, 1, 3).reshape(b, l, -1)\n\n    return self.to_out(out)\n\n\nclass Resampler(nn.Module):\n  def __init__(\n    self,\n    dim=1024,\n    depth=8,\n    dim_head=64,\n    heads=16,\n    num_queries=8,\n    embedding_dim=768,\n    output_dim=1024,\n    ff_mult=4,\n  ):\n    super().__init__()\n\n    self.latents = nn.Parameter(torch.randn(1, num_queries, dim) / dim**0.5)\n\n    self.proj_in = nn.Linear(embedding_dim, dim)\n\n    self.proj_out = nn.Linear(dim, output_dim)\n    self.norm_out = nn.LayerNorm(output_dim)\n\n    self.layers = nn.ModuleList([])\n    for _ in range(depth):\n      self.layers.append(\n        nn.ModuleList(\n          [\n            PerceiverAttention(dim=dim, dim_head=dim_head, heads=heads),\n            FeedForward(dim=dim, mult=ff_mult),\n          ]\n        )\n      )\n\n  def forward(self, x):\n\n    latents = self.latents.repeat(x.size(0), 1, 1)\n\n    x = self.proj_in(x)\n\n    for attn, ff in self.layers:\n        latents = attn(x, latents) + latents\n        latents = ff(latents) + latents\n\n    latents = self.proj_out(latents)\n    return self.norm_out(latents)"
  },
  {
    "path": "nodes.py",
    "content": "import os\nimport cv2\nimport torch\nimport numpy as np\nimport json\nimport comfy.utils\nimport folder_paths\nfrom urllib.parse import urlparse, parse_qs\nfrom server import PromptServer\nfrom aiohttp import web\nfrom comfy_execution.graph_utils import GraphBuilder\nfrom .ip_adapter.resampler import Resampler\nfrom .ip_adapter.instantId import InstantId\nfrom insightface.app import FaceAnalysis\nfrom .utils import draw_kps, set_model_patch_replace, resize_to_fit_area, \\\n  kps_rotate_2d, kps_rotate_3d, kps3d_to_kps2d, calculate_size_after_rotation, \\\n  get_mask_bbox_with_padding,get_kps_from_image,get_angle, image_rotate_with_pad, \\\n  get_bbox_from_kps\n\n\nfolder_paths.folder_names_and_paths[\"ipadapter\"] = ([os.path.join(folder_paths.models_dir, \"ipadapter\")], folder_paths.supported_pt_extensions)\nINSIGHTFACE_PATH = os.path.join(folder_paths.models_dir, \"insightface\")\nCATEGORY_NAME = \"InstantId Faceswap\"\nMAX_RESOLUTION = 16384\n\n\n#==============================================================================\n# get key points and landmarks position as 3d points and send it back to frontend when requested\nroutes = PromptServer.instance.routes\n@routes.post('/get_keypoints_for_instantId')\nasync def proxy_handle(request):\n  post = await request.json()\n\n  try:\n    app = FaceAnalysis(\n      name=\"antelopev2\",\n      root=INSIGHTFACE_PATH,\n      providers=[\"CPUExecutionProvider\", \"CUDAExecutionProvider\"]\n    )\n\n    app.prepare(ctx_id=0, det_size=(640, 640))\n    parsed_url = urlparse(post['image'])\n    queries = parse_qs(parsed_url.query)\n    path = os.path.join(folder_paths.get_directory_by_type(queries['type'][0]), queries['filename'][0])\n    image = cv2.imread(path)\n    faces = app.get(cv2.cvtColor(image, cv2.COLOR_RGB2BGR))\n    if len(faces) == 0:\n      raise Exception(\"No face detected\")\n\n    face = sorted(faces, key=lambda x: (x[\"bbox\"][2] - x[\"bbox\"][0]) * (x[\"bbox\"][3] - x[\"bbox\"][1]))[-1] # only use the maximum face\n\n    landmarks_3d = face.landmark_3d_68\n    # KPS\n    left_eye = np.mean(landmarks_3d[36:42], axis=0)\n    right_eye = np.mean(landmarks_3d[42:48], axis=0)\n    nose_tip = np.array([landmarks_3d[33][0], landmarks_3d[33][1], landmarks_3d[30][2]])\n    left_mouth = landmarks_3d[48]\n    right_mouth = landmarks_3d[54]\n    \n    return web.json_response({\n      \"status\": \"ok\",\n      \"data\": {\n        \"kps\": [ left_eye.tolist(), right_eye.tolist(), nose_tip.tolist(), left_mouth.tolist(), right_mouth.tolist() ],\n        \"jawline\": landmarks_3d[0:17].tolist(), \n        \"eyebrow_left\": landmarks_3d[17:22].tolist(),\n        \"eyebrow_right\": landmarks_3d[22:27].tolist(),\n        \"nose_bridge\": landmarks_3d[27:31].tolist(), \n        \"nose_lower\": landmarks_3d[31:36].tolist(), \n        \"eye_left\": landmarks_3d[36:42].tolist(),\n        \"eye_right\": landmarks_3d[42:48].tolist(),\n        \"mouth_outer\": landmarks_3d[48:60].tolist(),\n        \"mouth_inner\": landmarks_3d[60:68].tolist(),\n        }\n    })\n  except Exception as error:\n      if str(error) == \"No face detected\":\n        return web.json_response({\n          \"error\": \"No face detected\"\n        })\n      else:\n        raise error\n\n\n#==============================================================================\nclass FaceEmbed:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"insightface\":  (\"INSIGHTFACE_APP\",),\n        \"face_image\":  (\"IMAGE\",)\n      },\n      \"optional\": {\n        \"face_embeds\": (\"FACE_EMBED\",)\n      }\n    }\n\n  RETURN_TYPES = (\"FACE_EMBED\",)\n  RETURN_NAMES = (\"face embeds\",)\n  FUNCTION = \"make_face_embed\"\n  CATEGORY = CATEGORY_NAME\n\n  def make_face_embed(self, insightface, face_image, face_embeds = None):\n    face_image = (255.0 * face_image.cpu().numpy().squeeze()).clip(0, 255).astype(np.uint8)\n    face_info = insightface.get(cv2.cvtColor(face_image, cv2.COLOR_RGB2BGR))\n\n    assert len(face_info) > 0, \"No face detected for face embed\"\n\n    face_info = sorted(face_info, key=lambda x: (x[\"bbox\"][2] - x[\"bbox\"][0]) * (x[\"bbox\"][3] - x[\"bbox\"][1]))[-1] # only use the maximum face\n    face_emb = torch.tensor(face_info[\"embedding\"], dtype=torch.float32).unsqueeze(0)\n\n    if face_embeds is None:\n      return (face_emb,)\n\n    face_embeds = torch.cat((face_embeds, face_emb), dim=-2)\n    return (face_embeds,)\n\n\n#==============================================================================\nclass FaceEmbedCombine:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"resampler\":  (\"RESAMPLER\",),\n        \"face_embeds\":  (\"FACE_EMBED\",)\n      },\n    }\n\n  RETURN_TYPES = (\"FACE_CONDITIONING\",)\n  RETURN_NAMES = (\"face conditioning\",)\n  FUNCTION = \"combine_face_embed\"\n  CATEGORY = CATEGORY_NAME\n\n  def combine_face_embed(self, resampler, face_embeds):\n    embeds = torch.mean(face_embeds, dim=0, dtype=torch.float32).unsqueeze(0)\n    embeds = embeds.reshape([1, -1, 512])\n    conditionings = resampler(embeds).to(comfy.model_management.get_torch_device())\n    return (conditionings,)\n\n\n#==============================================================================\nclass AngleFromFace:\n  rotate_modes = [\"none\", \"loseless\", \"any\"]\n  def __init__(self):\n      pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"insightface\": (\"INSIGHTFACE_APP\",),\n        \"image\": (\"IMAGE\", { \"tooltip\": \"Pose image.\" }),\n        \"mask\": (\"MASK\",),\n        \"rotate_mode\": (self.rotate_modes,),\n        \"pad_top\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"pad_right\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"pad_bottom\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"pad_left\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n      },\n    }\n\n  RETURN_TYPES = (\"FLOAT\",)\n  RETURN_NAMES = (\"angle\",)\n  FUNCTION = \"get_angle\"\n  CATEGORY = CATEGORY_NAME\n\n  def get_angle(\n        self, insightface, image, mask, rotate_mode,\n        pad_top, pad_right, pad_bottom, pad_left\n    ):\n\n    p_x1, p_y1, p_x2, p_y2 = get_mask_bbox_with_padding(mask.squeeze(0), pad_top, pad_right, pad_bottom, pad_left)\n    image = image[:, p_y1:p_y2, p_x1:p_x2]\n    kps = get_kps_from_image(image, insightface)\n\n    angle = 0.\n    if rotate_mode != \"none\" :\n      angle = get_angle(\n        kps[0], kps[1],\n        round_angle = True if rotate_mode == \"loseless\" else False\n      )\n    return (angle,)\n\n\n#==============================================================================\nclass AngleFromKps:\n  rotate_modes = [\"none\", \"loseless\", \"any\"]\n  def __init__(self):\n      pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"rotate_mode\": (self.rotate_modes,)\n      },\n    }\n\n  RETURN_TYPES = (\"FLOAT\",)\n  RETURN_NAMES = (\"angle\",)\n  FUNCTION = \"get_angle\"\n  CATEGORY = CATEGORY_NAME\n\n  def get_angle(self, kps_data, rotate_mode):\n    kps_data = json.loads(kps_data)\n    angle = 0.\n    if rotate_mode != \"none\" :\n      angle = get_angle(\n        kps_data['array'][0], kps_data['array'][1],\n        round_angle = True if rotate_mode == \"loseless\" else False\n      )\n    return (angle,)\n\n\n#==============================================================================\nclass ComposeRotated:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"original_image\": (\"IMAGE\",),\n        \"rotated_image\": (\"IMAGE\",),\n      }\n  }\n\n  RETURN_TYPES = (\"IMAGE\",)\n  RETURN_NAMES = (\"image\",)\n  FUNCTION = \"compose_rotate\"\n  CATEGORY = CATEGORY_NAME\n\n  def compose_rotate(self, original_image, rotated_image):\n    original_width, original_height = original_image.shape[2], original_image.shape[1]\n    rotated_width, rotated_height = rotated_image.shape[2], rotated_image.shape[1]\n\n    if rotated_width != original_width:\n      pad_x1 = (rotated_width - original_width) // 2\n      pad_x2 = pad_x1 * -1\n    else:\n      pad_x1 = 0\n      pad_x2 = original_width\n\n    if rotated_height != original_height:\n      pad_y1 = (rotated_height - original_height) // 2\n      pad_y2 = pad_y1 * -1\n    else:\n      pad_y1 = 0\n      pad_y2 = original_height\n\n    image = rotated_image[:, pad_y1:pad_y2, pad_x1:pad_x2, :]\n    return (image,)\n\n\n#==============================================================================\nclass RotateImage:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"image\": (\"IMAGE\",),\n        \"angle\": (\"FLOAT\", {\"default\": 0.0, \"min\": -360.0, \"step\": 0.1, \"max\": 360.0},),\n        \"counter_clockwise\": (\"BOOLEAN\", {\"default\": True},),\n      }\n    }\n\n  RETURN_TYPES = (\"IMAGE\",)\n  RETURN_NAMES = (\"rotated_image\", \"rotated_mask\",)\n  FUNCTION = \"rotate_and_pad_image\"\n  CATEGORY = CATEGORY_NAME\n\n  def rotate_and_pad_image(self, image, angle, counter_clockwise):\n    if angle == 0 or angle == 360:\n      return (image,)\n\n    image = image_rotate_with_pad(image, counter_clockwise, angle)\n\n    return (image,)\n  \n\n#==============================================================================\nclass LoadInstantIdAdapter:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"ipadapter\":  (folder_paths.get_filename_list(\"ipadapter\"), { \"tooltip\": \"The default folder where the adapter is searched for is: models/ipadapter.\" }),\n      }\n  }\n\n  RETURN_TYPES = (\"INSTANTID_ADAPTER\", \"RESAMPLER\", )\n  RETURN_NAMES = (\"InstantId_adapter\", \"resampler\",)\n  FUNCTION = \"load_instantId_adapter\"\n  CATEGORY = CATEGORY_NAME\n\n  def load_instantId_adapter(self, ipadapter):\n    ipadapter_path = folder_paths.get_full_path(\"ipadapter\", ipadapter)\n    model = comfy.utils.load_torch_file(ipadapter_path, safe_load=True)\n    instantId = InstantId(model['ip_adapter'])\n\n    resampler = Resampler(\n      dim=1280,\n      depth=4,\n      dim_head=64,\n      heads=20,\n      num_queries=16,\n      embedding_dim=512,\n      output_dim=2048,\n      ff_mult=4\n    )\n    resampler.load_state_dict(model[\"image_proj\"])\n    return (instantId, resampler)\n\n\n#==============================================================================\nclass InstantIdAdapterApply:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"model\": (\"MODEL\", ),\n        \"instantId_adapter\": (\"INSTANTID_ADAPTER\", ),\n        \"face_conditioning\": (\"FACE_CONDITIONING\", ),\n        \"strength\": (\"FLOAT\", {\"default\": 0.8, \"min\": 0, \"step\": 0.1, \"max\": 10},),\n      }\n    }\n\n  RETURN_TYPES = (\"MODEL\",)\n  RETURN_NAMES = (\"model\",)\n  FUNCTION = \"apply_instantId_adapter\"\n  CATEGORY = CATEGORY_NAME\n\n  def apply_instantId_adapter(self, model, instantId_adapter, face_conditioning, strength):\n    if strength == 0: return (model,)\n\n    instantId = instantId_adapter.to(comfy.model_management.get_torch_device())\n    patch_kwargs = {\n      \"instantId\": instantId,\n      \"scale\": strength,\n      \"cond\": face_conditioning,\n      \"number\": 0\n    }\n\n    m = model.clone()\n\n    for id in [4,5,7,8]:\n      block_indices = range(2) if id in [4, 5] else range(10)\n      for index in block_indices:\n        set_model_patch_replace(m, patch_kwargs, (\"input\", id, index))\n        patch_kwargs[\"number\"] += 1\n      block_indices = range(2) if id in [3, 4, 5] else range(10)\n      for index in block_indices:\n        set_model_patch_replace(m, patch_kwargs, (\"output\", id, index))\n        patch_kwargs[\"number\"] += 1\n    for index in range(10):\n      set_model_patch_replace(m, patch_kwargs, (\"middle\", 1, index))\n      patch_kwargs[\"number\"] += 1\n\n    return (m,)\n\n\n#==============================================================================\n# based on ControlNetApplyAdvance from ComfyUi/nodes.py\nclass ControlNetInstantIdApply:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"positive\": (\"CONDITIONING\", ),\n        \"negative\": (\"CONDITIONING\", ),\n        \"face_conditioning\": (\"FACE_CONDITIONING\", ),\n        \"control_net\": (\"CONTROL_NET\", ),\n        \"image\": (\"IMAGE\", ),\n        \"strength\": (\"FLOAT\", {\"default\": 1.0, \"min\": 0.0, \"max\": 10.0, \"step\": 0.01})\n      }\n    }\n\n  RETURN_TYPES = (\"CONDITIONING\", \"CONDITIONING\", )\n  RETURN_NAMES = (\"positive\", \"negative\",)\n  FUNCTION = \"apply_controlnet\"\n  CATEGORY = CATEGORY_NAME\n\n  def apply_controlnet(self, positive, negative, face_conditioning, control_net, image, strength):\n    if strength == 0:\n        return (positive, negative)\n\n    control_hint = image.movedim(-1,1)\n    cnets = {}\n\n    out = []\n    for conditioning, isPositive in zip([positive, negative], [True, False]):\n      c = []\n      for t in conditioning:\n        d = t[1].copy()\n\n        prev_cnet = d.get(\"control\", None)\n        if prev_cnet in cnets:\n          c_net = cnets[prev_cnet]\n        else:\n          c_net = control_net.copy().set_cond_hint(control_hint, strength)\n          c_net.set_previous_controlnet(prev_cnet)\n          cnets[prev_cnet] = c_net\n\n        if isPositive:\n          d[\"cross_attn_controlnet\"] = face_conditioning.to(comfy.model_management.intermediate_device())\n        else :\n          d[\"cross_attn_controlnet\"] = torch.zeros_like(face_conditioning).to(comfy.model_management.intermediate_device())\n        d[\"control\"] = c_net\n        d[\"control_apply_to_uncond\"] = False\n\n        n = [t[0], d]\n        c.append(n)\n      out.append(c)\n    return (out[0], out[1],)\n\n\n#==============================================================================\nclass InstantIdAndControlnetApply:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"model\": (\"MODEL\", ),\n        \"ipadapter_path\":  (folder_paths.get_filename_list(\"ipadapter\"), { \"tooltip\": \"The default folder where the adapter is searched for is: models/ipadapter.\" }),\n        \"control_net_name\": (folder_paths.get_filename_list(\"controlnet\"), ),\n        \"face_embed\": (\"FACE_EMBED\", ),\n        \"control_image\": (\"IMAGE\", ),\n        \"adapter_strength\": (\"FLOAT\", {\"default\": 0.5, \"min\": 0, \"step\": 0.1, \"max\": 10},),\n        \"control_net_strength\": (\"FLOAT\", {\"default\": 0.7, \"min\": 0.0, \"max\": 10.0, \"step\": 0.01}),\n        \"positive\": (\"CONDITIONING\", ),\n        \"negative\": (\"CONDITIONING\", )\n      }\n    }\n\n  RETURN_TYPES = (\"MODEL\", \"CONDITIONING\", \"CONDITIONING\",)\n  RETURN_NAMES = (\"model\", \"positive\", \"negative\",)\n  FUNCTION = \"apply_instantId_adapter_and_controlnet\"\n  CATEGORY = CATEGORY_NAME\n\n  def apply_instantId_adapter_and_controlnet(\n      self, model, ipadapter_path, control_net_name, face_embed, control_image,\n      adapter_strength, control_net_strength, positive, negative\n  ):\n    graph = GraphBuilder()\n    loadInstantIdAdapter = graph.node(\n      \"LoadInstantIdAdapter\", ipadapter=ipadapter_path\n    )\n    faceEmbedCombine = graph.node(\n      \"FaceEmbedCombine\", resampler=loadInstantIdAdapter.out(1), face_embeds=face_embed\n     )\n    loadControlNet = graph.node(\n      \"ControlNetLoader\", control_net_name = control_net_name\n    )\n    instantIdApply = graph.node(\n      \"InstantIdAdapterApply\", model=model, instantId_adapter=loadInstantIdAdapter.out(0),\n      face_conditioning=faceEmbedCombine.out(0), strength=adapter_strength\n    )\n    controlNetInstantIdApply = graph.node(\n      \"ControlNetInstantIdApply\", positive=positive, negative=negative,\n      face_conditioning=faceEmbedCombine.out(0), control_net=loadControlNet.out(0),\n      image=control_image, strength=control_net_strength\n    )\n\n    return {\n      \"result\": (instantIdApply.out(0), controlNetInstantIdApply.out(0), controlNetInstantIdApply.out(1),),\n      \"expand\":graph.finalize()\n    }\n\n\n#==============================================================================\nclass PreprocessImageAdvanced:\n  resize_modes = [\"auto\", \"free\", \"scale by width\", \"scale by height\"]\n  upscale_methods = [\"nearest-exact\", \"bilinear\", \"area\", \"bicubic\", \"lanczos\"]\n\n  def __init__(self):\n      pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"image\": (\"IMAGE\", { \"tooltip\": \"Pose image.\" }),\n        \"mask\": (\"MASK\",),\n        \"width\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"height\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"resize_mode\": (self.resize_modes,),\n        \"upscale_method\": (self.upscale_methods,),\n        \"pad_top\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"pad_right\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"pad_bottom\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"pad_left\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n      },\n      \"optional\": {\n        \"insightface\": (\"INSIGHTFACE_APP\",),\n      }\n    }\n\n  RETURN_TYPES = (\"IMAGE\", \"MASK\", \"IMAGE\", \"INT\", \"INT\", \"INT\", \"INT\", \"INT\", \"INT\",)\n  RETURN_NAMES = (\"resized_image\", \"mask\", \"control_image\", \"x\", \"y\", \"original_width\", \"original_height\", \"new_width\", \"new_height\",)\n  FUNCTION = \"preprocess_image\"\n  CATEGORY = CATEGORY_NAME\n\n  def preprocess_image(\n        self, image, mask, width, height, resize_mode, upscale_method,\n        pad_top, pad_right, pad_bottom, pad_left, insightface = None\n    ):\n\n    p_x1, p_y1, p_x2, p_y2 = get_mask_bbox_with_padding(mask.squeeze(0), pad_top, pad_right, pad_bottom, pad_left)\n    mask = mask[:, p_y1:p_y2, p_x1:p_x2]\n    image = image[:, p_y1:p_y2, p_x1:p_x2]\n    kps = get_kps_from_image(image, insightface) if insightface else None\n    _, original_height, original_width, _ = image.shape\n\n    if resize_mode == \"auto\":\n       width, height = resize_to_fit_area(int(p_x2 - p_x1), int(p_y2 - p_y1), width, height)\n    else:\n      if resize_mode != \"free\":\n        ratio = original_width / original_height\n        if resize_mode == \"scale by width\":\n          height = int(width / ratio)\n        if resize_mode == \"scale by height\":\n          width = int(height * ratio)\n\n    width = (width // 8) * 8\n    height = (height // 8) * 8\n\n    mask = mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])).movedim(1, -1).expand(-1, -1, -1, 3)\n    image = image.movedim(-1,1)\n    mask = mask.movedim(-1,1)\n\n    mask = comfy.utils.common_upscale(mask, width, height, \"bilinear\", \"disabled\")\n    image = comfy.utils.common_upscale(image, width, height, upscale_method, \"disabled\")\n\n    mask = mask.movedim(1,-1)\n    mask = mask[:, :, :, 0]\n    image = image.movedim(1,-1)\n    _, new_height, new_width = mask.shape\n\n    if kps is not None:\n      kps *= [image.shape[2]  / original_width, image.shape[1] / original_height]\n      control_image = draw_kps(width, height, kps)\n      control_image = (torch.from_numpy(control_image).float() / 255.0).unsqueeze(0)\n\n    return (\n      image, mask,\n      control_image if kps is not None else None,\n      p_x1, p_y1, original_width, original_height,\n      new_width, new_height,\n    )\n\n\n#==============================================================================\nclass PreprocessImage(PreprocessImageAdvanced):\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"image\": (\"IMAGE\",),\n        \"mask\": (\"MASK\",),\n        \"width\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"height\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"resize_mode\": (self.resize_modes,),\n        \"pad\": (\"INT\", {\"default\": 100, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n      },\n      \"optional\": {\n        \"insightface\": (\"INSIGHTFACE_APP\",),\n      }\n    }\n\n  FUNCTION = \"preprocess_image_simple\"\n  CATEGORY = CATEGORY_NAME\n\n  def preprocess_image_simple(self, image, mask, width, height, resize_mode, pad, insightface = None):\n    return self.preprocess_image(\n       image, mask, width, height, resize_mode, \"bilinear\", pad, pad, pad, pad, insightface\n    )\n\n\n#==============================================================================\nclass LoadInsightface:\n  def __init__(self):\n    pass\n\n  @classmethod\n  def INPUT_TYPES(self):\n    return {}\n\n  RETURN_TYPES = (\"INSIGHTFACE_APP\",)\n  RETURN_NAMES = (\"insightface\",)\n  FUNCTION = \"load_insightface\"\n  CATEGORY = CATEGORY_NAME\n\n  def load_insightface(self):\n    app = FaceAnalysis(\n      name=\"antelopev2\",\n      root=INSIGHTFACE_PATH,\n      providers=[\"CPUExecutionProvider\", \"CUDAExecutionProvider\"]\n    )\n    app.prepare(ctx_id=0, det_size=(640, 640))\n    return (app,)\n\n\n#==============================================================================\nclass KpsDraw:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"width\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"height\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"kps\": (\"HIDDEN_STRING_JSON\", ),\n      },\n      \"optional\": {\n        \"image_reference\": (\"IMAGE\",),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"draw_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def draw_kps(self, width, height, kps, image_reference = None):\n    return (kps,)\n  \n \n#==============================================================================\nclass Kps3dFromImage:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"width\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"height\": (\"INT\", {\"default\": 1024, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"kps\": (\"HIDDEN_STRING_JSON\", ),\n      },\n       \"optional\": {\n        \"image\": (\"IMAGE\",),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA_3D\", \"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data_3d\", \"kps_data\")\n  FUNCTION = \"make_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def make_kps(self, width, height, kps, image):\n\n    kps_2d = kps3d_to_kps2d(json.loads(kps))\n\n    return (kps, json.dumps(kps_2d),)\n\n\n#==============================================================================\nclass KpsMaker:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n      }\n    }\n\n  RETURN_TYPES = (\"IMAGE\",)\n  RETURN_NAMES = (\"control_image\",)\n  FUNCTION = \"draw_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def draw_kps(self, kps_data):\n    kps_data = json.loads(kps_data)\n\n    control_image = draw_kps(kps_data['width'], kps_data[\"height\"], kps_data[\"array\"], alphas = kps_data[\"opacities\"])\n    control_image = (torch.from_numpy(control_image).float() / 255.0).unsqueeze(0)\n\n    return (control_image, )\n  \n\n#==============================================================================\nclass Kps2dRandomizer:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"seed\": (\"INT\", {\"default\": 0, \"min\": 0, \"max\": 0xffffffffffffffff, \"tooltip\": \"The random seed used for randomizing KPS\"}),\n        \"angle_min\": (\"INT\", {\"default\": 0, \"min\": -180, \"step\": 1, \"max\": 180}),\n        \"angle_max\": (\"INT\", {\"default\": 0, \"min\": -180, \"step\": 1, \"max\": 180}),\n        \"scale_min\": (\"FLOAT\", {\"default\": 1, \"min\": 0.1, \"step\": 0.01, \"max\": 5}),\n        \"scale_max\": (\"FLOAT\", {\"default\": 1, \"min\": 0.1, \"step\": 0.01, \"max\": 5}),\n        \"translate_x\": (\"INT\", {\"default\": 0, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"translate_y\": (\"INT\", {\"default\": 0, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n        \"border\": (\"INT\", {\"default\": 0, \"min\": 0, \"step\": 1, \"max\": MAX_RESOLUTION}),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"rand_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def rand_kps(self, kps_data, seed, angle_min, angle_max, scale_min, scale_max, translate_x, translate_y, border):\n\n    torch.manual_seed(seed)\n    kps_data = json.loads(kps_data)\n\n    angle = 0\n    scale = 1\n    width = kps_data['width']\n    height = kps_data['height']\n\n    # get random angle\n    if angle_min != 0 and angle_max != 0:\n      angle = torch.randint(angle_min, angle_max + 1, (1,)).item()\n\n    # get random scale\n    if scale_min != 1 and scale_max != 1:\n      scale = (scale_max - scale_min) * torch.rand(1).item() + scale_min\n\n    # get random translate_x and translate_y\n    if translate_x != 0:\n        random_translate_x = torch.randint(-int(translate_x), int(translate_x) + 1, (1,)).item()\n    else:\n        random_translate_x = 0\n\n    if translate_y != 0:\n        random_translate_y = torch.randint(-int(translate_y), int(translate_y) + 1, (1,)).item()\n    else:\n        random_translate_y = 0\n\n    # rotate\n    if angle != 0:\n      centroid = np.mean(np.array(kps_data[\"array\"]), axis=0)\n      angle_rad = np.radians(angle)\n\n      rotated_points = []\n      for x, y in kps_data[\"array\"]:\n        translated_x = x - centroid[0]\n        translated_y = y - centroid[1]\n        \n        rotated_x = translated_x * np.cos(angle_rad) - translated_y * np.sin(angle_rad)\n        rotated_y = translated_x * np.sin(angle_rad) + translated_y * np.cos(angle_rad)\n\n        rotated_points.append([rotated_x + centroid[0], rotated_y + centroid[1]])\n\n      kps_data[\"array\"] = rotated_points\n  \n    # translate\n    if random_translate_x != 0 or random_translate_y != 0:\n        translated_points = []\n        for x, y in kps_data[\"array\"]:\n            translated_points.append([x + random_translate_x, y + random_translate_y])\n        kps_data[\"array\"] = translated_points\n\n    # scale\n    if scale_min != 1 and scale_max != 1:\n        scaled_points = []\n        centroid = np.mean(np.array(kps_data[\"array\"]), axis=0)\n        for x, y in kps_data[\"array\"]:\n            scaled_points.append([\n                centroid[0] + (x - centroid[0]) * scale,\n                centroid[1] + (y - centroid[1]) * scale\n            ])\n        kps_data[\"array\"] = scaled_points\n\n    # check border\n    x_values = [x for x, _ in kps_data[\"array\"]]\n    y_values = [y for _, y in kps_data[\"array\"]]\n\n    min_x, max_x = min(x_values), max(x_values)\n    min_y, max_y = min(y_values), max(y_values)\n\n    shift_x = 0\n    shift_y = 0\n\n    if min_x < border:\n      shift_x = border - min_x \n    elif max_x > width - border:\n      shift_x = (width - border) - max_x \n\n    if min_y < border:\n        shift_y = border - min_y \n    elif max_y > height - border:\n        shift_y = (height - border) - max_y \n\n\n\n    final_output = []\n    for x, y in kps_data[\"array\"]:\n        shifted_x = x + shift_x\n        shifted_y = y + shift_y\n        final_output.append([int(shifted_x), int(shifted_y)])\n\n    kps_data[\"array\"] = final_output\n\n    return (json.dumps(kps_data), )\n\n#==============================================================================\nclass Kps3dRandomizer:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data_3d\": (\"KPS_DATA_3D\",),\n        \"seed\": (\"INT\", {\"default\": 0, \"min\": 0, \"max\": 0xffffffffffffffff, \"tooltip\": \"The random seed used for randomizing KPS\"}),\n        \"rotate_x\": (\"INT\", {\"default\": 0, \"min\": -180, \"step\": 1, \"max\": 180}),\n        \"rotate_y\": (\"INT\", {\"default\": 0, \"min\": -180, \"step\": 1, \"max\": 180}),\n        \"rotate_z\": (\"INT\", {\"default\": 0, \"min\": -180, \"step\": 1, \"max\": 180})\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"rand_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def rand_kps(self, kps_data_3d, seed, rotate_x, rotate_y, rotate_z):\n    torch.manual_seed(seed)\n    kps_data = json.loads(kps_data_3d)\n\n    angle_x = 0\n    if rotate_x != 0:\n      angle_x = torch.randint(-rotate_x, rotate_x + 1, (1,)).item()\n    angle_y = 0\n    if rotate_y != 0:\n      angle_y = torch.randint(-rotate_y, rotate_y + 1, (1,)).item()\n    angle_z = 0\n    if rotate_x != 0:\n      angle_z = torch.randint(-rotate_z, rotate_z + 1, (1,)).item()\n\n    angle_x += kps_data['rotateX']\n    angle_y += kps_data['rotateY']\n    angle_z += kps_data['rotateZ']\n    if angle_x != 0 or angle_y != 0 or angle_z != 0: \n      points = kps_rotate_3d(kps_data['array'], angle_x, angle_y, angle_z)\n    else:\n      points = kps_data['array']\n\n    kps_data['array'] = points\n    kps_data = kps3d_to_kps2d(kps_data)\n  \n    return (json.dumps(kps_data), )\n\n\n#==============================================================================\nclass Kps2dScaleBy:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"scale\": (\"FLOAT\", {\"default\": 1, \"min\": 0, \"max\": 100}),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"scale_kps_by\"\n  CATEGORY = CATEGORY_NAME\n\n  def scale_kps_by(self, kps_data, scale):\n    kps_data = json.loads(kps_data)\n\n    points = kps_data['array']\n    kps_data['width'] = int(kps_data['width'] * scale)\n    kps_data['height'] = int(kps_data['height'] * scale)\n    for i, point in enumerate(points):\n      kps_data['array'][i][0] = int(point[0] * scale)\n      kps_data['array'][i][1] = int(point[1] * scale)\n  \n    return (json.dumps(kps_data), )\n\n\n#==============================================================================\nclass Kps2dScale:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"width\": (\"INT\", {\"default\": 1024, \"min\": 0, \"max\": MAX_RESOLUTION}),\n        \"height\": (\"INT\", {\"default\": 1024, \"min\": 0, \"max\": MAX_RESOLUTION}),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"scale_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def scale_kps(self, kps_data, width, height):\n    kps_data = json.loads(kps_data)\n\n    points = kps_data['array']\n    scaleX =  width / kps_data['width']\n    scaleY =  height / kps_data['height']\n    kps_data['width'] = int(kps_data['width'] * scaleX)\n    kps_data['height'] = int(kps_data['height'] * scaleY)\n\n    for i, point in enumerate(points):\n      kps_data['array'][i][0] = int(point[0] * scaleX)\n      kps_data['array'][i][1] = int(point[1] * scaleY)\n  \n    return (json.dumps(kps_data), )\n  \n\n#==============================================================================\nclass Kps2dRotate:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"angle\": (\"FLOAT\", {\"default\": 0.0, \"min\": -360.0, \"step\": 0.1, \"max\": 360.0},),\n        \"counter_clockwise\": (\"BOOLEAN\", {\"default\": True},),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"rotate_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def rotate_kps(self, kps_data, angle, counter_clockwise):\n    if angle == 0 or angle == 360:\n      return (kps_data,)\n\n    if counter_clockwise: angle = -angle\n\n    kps_data = json.loads(kps_data)\n\n    points = kps_data['array']\n    new_width, new_height = calculate_size_after_rotation(kps_data['width'], kps_data['height'], angle)\n\n    kps_data['array'] = kps_rotate_2d(points, kps_data['width'], kps_data['height'], int(new_width), int(new_height), angle)\n    kps_data['width'] = int(new_width)\n    kps_data['height'] = int(new_height)\n\n    return (json.dumps(kps_data), )\n  \n#==============================================================================\nclass Kps2dCrop:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"x\": (\"INT\", {\"default\": 0, \"min\": 0, \"max\": MAX_RESOLUTION, \"step\": 1}),\n        \"y\": (\"INT\", {\"default\": 0, \"min\": 0, \"max\": MAX_RESOLUTION, \"step\": 1}),\n        \"width\": (\"INT\", {\"default\": 1024, \"min\": 1, \"max\": MAX_RESOLUTION, \"step\": 1}),\n        \"height\": (\"INT\", {\"default\": 1024, \"min\": 1, \"max\": MAX_RESOLUTION, \"step\": 1}),\n      }\n    }\n\n  RETURN_TYPES = (\"KPS_DATA\",)\n  RETURN_NAMES = (\"kps_data\",)\n  FUNCTION = \"crop_kps\"\n  CATEGORY = CATEGORY_NAME\n\n  def crop_kps(self, kps_data, x, y, width, height):\n    kps_data = json.loads(kps_data)\n\n    kps_data['width'] = width\n    kps_data['height'] = height\n\n    points = kps_data['array']\n\n    for i, point in enumerate(points):\n      kps_data['array'][i][0] = point[0] - x#\n      kps_data['array'][i][1] = point[1] - y#\n\n    return (json.dumps(kps_data), )\n  \n\n#==============================================================================\nclass MaskFromKps:\n  @classmethod\n  def INPUT_TYPES(self):\n    return {\n      \"required\": {\n        \"kps_data\": (\"KPS_DATA\",),\n        \"grow_by\": (\"INT\", {\"default\": 4, \"min\": 1, \"max\": 10, \"step\": 1}),\n      }\n    }\n\n  RETURN_TYPES = (\"MASK\",)\n  RETURN_NAMES = (\"mask\",)\n  FUNCTION = \"creat_mask\"\n  CATEGORY = CATEGORY_NAME\n\n  def creat_mask(self, kps_data, grow_by):\n    kps_data = json.loads(kps_data)\n    bbox = get_bbox_from_kps(kps_data, grow_by)\n    mask = torch.zeros((kps_data['height'], kps_data['width']))\n    mask[bbox[0][1]:bbox[1][1], bbox[0][0]:bbox[1][0]] = 1\n\n    return (mask.unsqueeze(0), )\n\nNODE_CLASS_MAPPINGS = {\n  \"LoadInsightface\": LoadInsightface,\n  \"LoadInstantIdAdapter\": LoadInstantIdAdapter,\n  \"InstantIdAdapterApply\": InstantIdAdapterApply,\n  \"ControlNetInstantIdApply\": ControlNetInstantIdApply,\n  \"InstantIdAndControlnetApply\": InstantIdAndControlnetApply,\n  \"PreprocessImage\": PreprocessImage,\n  \"PreprocessImageAdvanced\": PreprocessImageAdvanced,\n  \"AngleFromFace\": AngleFromFace,\n  \"AngleFromKps\": AngleFromKps,\n  \"RotateImage\": RotateImage,\n  \"ComposeRotated\": ComposeRotated,\n  \"KpsDraw\": KpsDraw,\n  \"Kps3dFromImage\": Kps3dFromImage,\n  \"KpsMaker\": KpsMaker,\n  \"Kps2dRandomizer\": Kps2dRandomizer,\n  \"Kps3dRandomizer\": Kps3dRandomizer,\n  \"KpsScale\": Kps2dScale,\n  \"KpsScaleBy\": Kps2dScaleBy,\n  \"KpsRotate\": Kps2dRotate,\n  \"KpsCrop\": Kps2dCrop,\n  \"MaskFromKps\": MaskFromKps,\n  \"FaceEmbed\": FaceEmbed,\n  \"FaceEmbedCombine\": FaceEmbedCombine\n\n}\n\nNODE_DISPLAY_NAME_MAPPINGS = {\n  \"LoadInsightface\": \"Load insightface\",\n  \"LoadInstantIdAdapter\": \"Load instantId adapter\",\n  \"InstantIdAdapterApply\": \"Apply instantId adapter\",\n  \"ControlNetInstantIdApply\": \"Apply instantId ControlNet\",\n  \"InstantIdAndControlnetApply\": \"Apply instantId and ControlNet\",\n  \"PreprocessImage\": \"Preprocess image for instantId\",\n  \"PreprocessImagAdvancese\": \"Preprocess image for instantId (Advanced)\",\n  \"AngleFromFace\": \"Get Angle from face\",\n  \"AngleFromKps\": \"Get Angle from KPS data\",\n  \"RotateImage\": \"Rotate Image\",\n  \"ComposeRotated\": \"Remove rotation padding\",\n  \"KpsDraw\": \"Draw KPS\",\n  \"Kps3dFromImage\": \"3d KPS from image\",\n  \"KpsMaker\": \"Create KPS Image\",\n  \"Kps2dRandomizer\": \"Randomize 2d KPS\",\n  \"Kps3dRandomizer\": \"Randomize 3d KPS\",\n  \"Kps2dScaleBy\": \"Scale 2d KPS by\",\n  \"Kps2dScale\": \"Scale 2d KPS\",\n  \"KpsRotate\": \"Rotate 2d KPS\",\n  \"KpsCrop\": \"Crop 2d KPS\",\n  \"MaskFromKps\": \"Create mask from Kps\",\n  \"FaceEmbed\": \"FaceEmbed for instantId\",\n  \"FaceEmbedCombine\": \"FaceEmbed Combine\"\n}"
  },
  {
    "path": "pyproject.toml",
    "content": "[project]\nname = \"comfyui-instantid-faceswap\"\ndescription = \"Implementation of [a/faceswap](https://github.com/nosiu/InstantID-faceswap/tree/main) based on [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI.\"\nversion = \"0.1.1\"\nlicense = { file = \"LICENSE.txt\" }\ndependencies = [\"insightface\", \"onnxruntime-gpu\"]\n\n[project.urls]\nRepository = \"https://github.com/nosiu/comfyui-instantId-faceswap\"\n\n[tool.comfy]\nPublisherId = \"nosiu\"\nDisplayName = \"comfyui-instantId-faceswap\"\nIcon = \"\""
  },
  {
    "path": "requirements.txt",
    "content": "insightface\nonnxruntime-gpu"
  },
  {
    "path": "ui/dialogs.js",
    "content": "import { createShader, vertexShaderSrc, fragmentShaderSrc } from \"./shaders.js\"\nimport { getPointsCenter, drawKps, checkWebGlSupport, rotatePoints3D } from \"./helpers.js\"\nimport { createSlider, createButton, createRadiobox } from \"./uiHelpers.js\"\n\nclass KPSDialogBase {\n    constructor(w, h, img = undefined) {\n        this.isDragging = false\n        this.draggedPointIndex = null\n        this.mousedown_x = undefined\n        this.mousedown_y = undefined\n        this.mousedown_pan_x = undefined\n        this.mousedown_pan_y = undefined\n        this.pan_x = 0\n        this.pan_y = 0\n        this.cursorX = undefined\n        this.cursorY = undefined\n        this.zoom_ratio = 1\n        this.min_zoom = undefined\n        this.showOpacities = false\n        if (img) {\n          this.canvasWidth = img.width\n          this.canvasHeight = img.height\n        } else {\n          this.canvasWidth = w\n          this.canvasHeight = h\n        }\n\n        // ---------------------------------\n        this.element = document.createElement(\"div\")\n        this.element.style.display = \"none\"\n        this.element.style.width = \"80vw\"\n        this.element.style.height = \"80vh\"\n        this.element.style.zIndex = 8888\n        this.element.classList.add('comfy-modal')\n        this.element.classList.add('kps-sandbox')\n\n        document.body.appendChild(this.element)\n\n        this.canvas = document.createElement(\"canvas\")\n        this.canvas.style.position = \"absolute\"\n        this.canvas.style.pointerEvents = \"auto\"\n        this.canvas.style.zIndex = \"-1\"\n        this.element.appendChild(this.canvas)\n\n        this.canvas.width = this.canvasWidth\n        this.canvas.height = this.canvasHeight\n    }\n\n    initializeCanvasPanZoom () {\n      let drawWidth = this.canvasWidth;\n      let drawHeight = this.canvasHeight;\n      let width = this.element.clientWidth;\n      let height = this.element.clientHeight;\n  \n      if (this.canvasWidth > width) {\n        drawWidth = width;\n        drawHeight = drawWidth / this.canvasWidth * this.canvasHeight;\n      }\n      if (drawHeight > height) {\n        drawHeight = height;\n        drawWidth = drawHeight / this.canvasHeight * this.canvasWidth;\n      }\n      this.zoom_ratio = drawWidth / this.canvasWidth;\n      this.min_zoom = drawWidth / this.canvasWidth\n  \n      const canvasX = (width - drawWidth) / 2;\n      const canvasY = (height - drawHeight) / 2;\n      this.pan_x = canvasX;\n      this.pan_y = canvasY;\n      this.invalidatePanZoom();\n    }\n  \n    invalidatePanZoom () {\n      let raw_width = this.canvasWidth * this.zoom_ratio;\n      let raw_height = this.canvasHeight * this.zoom_ratio;\n      if (this.pan_x + raw_width < 10) {\n        this.pan_x = 10 - raw_width;\n      }\n      if (this.pan_y + raw_height < 10) {\n        this.pan_y = 10 - raw_height;\n      }\n  \n      this.canvas.style.width = `${raw_width}px`;\n      this.canvas.style.height = `${raw_height}px`;\n      this.canvas.style.left = `${this.pan_x}px`;\n      this.canvas.style.top = `${this.pan_y}px`;\n  \n      if (this.hasImage) {\n        this.imageCanvas.style.width = `${raw_width}px`;\n        this.imageCanvas.style.height = `${raw_height}px`;\n        this.imageCanvas.style.left = `${this.pan_x}px`;\n        this.imageCanvas.style.top = `${this.pan_y}px`;\n      }\n    }\n\n    setBasicControls () {\n      const buttonBar = document.createElement(\"div\")\n      buttonBar.id = \"instantIdButtonBar\"\n      buttonBar.style.position = \"absolute\"\n      buttonBar.style.bottom = \"0\"\n      buttonBar.style.height = \"50px\"\n      buttonBar.style.left = \"20px\"\n      buttonBar.style.right = \"20px\"\n      buttonBar.style.pointerEvents = \"none\"\n      buttonBar.appendChild(createButton(\"Save\", true, this.save.bind(this)))\n      buttonBar.appendChild(createButton(\"Cancel\", true, this.closeModal.bind(this)))\n      buttonBar.appendChild(createButton(\"Reset pan & zoom\", false, () => {\n        this.initializeCanvasPanZoom();\n      }));\n      buttonBar.appendChild(createButton(\"Reset KPS\", false, () => {\n        this.kps = this.getDefaultKps();\n        this.draw();\n      }));\n\n      buttonBar.appendChild(this.createZoomSlider())\n  \n      this.element.appendChild(buttonBar);\n      // ----------------------\n      const opacitiesButton = createButton(\n        \"Opacity options\", false, () => {\n          this.showOpacities = !this.showOpacities\n          if (this.showOpacities) {\n            opacitiesButton.innerText = \"Hide options\"\n            const advancedDiv = document.createElement(\"div\")\n            advancedDiv.style.overflow = \"auto\"\n            advancedDiv.id = \"kpsDialog0\"\n            advancedDiv.style.padding = \"20px\"\n            advancedDiv.style.paddingTop = \"50px\"\n            advancedDiv.style.width = \"200px\"\n            advancedDiv.style.height = \"100%\"\n            advancedDiv.style.position = \"absolute\"\n            advancedDiv.style.display = \"flex\"\n            advancedDiv.style.left = \"0\"\n            advancedDiv.style.top = \"0\"\n            advancedDiv.style.backgroundColor = \"black\"\n            advancedDiv.style.color = \"white\"\n  \n            const radioBar = document.createElement(\"div\");\n            radioBar.style.marginTop = \"20px\"\n            radioBar.style.pointerEvents = \"auto\"\n  \n            radioBar.appendChild(createRadiobox(\"red\", \"red opacity\", this.kpsOpacities, 0, this.draw.bind(this)))\n            radioBar.appendChild(createRadiobox(\"green\", \"green opacity\", this.kpsOpacities, 1, this.draw.bind(this)))\n            radioBar.appendChild(createRadiobox(\"blue\", \"blue opacity\", this.kpsOpacities, 2, this.draw.bind(this)))\n            radioBar.appendChild(createRadiobox(\"yellow\", \"yellow opacity\", this.kpsOpacities, 3, this.draw.bind(this)))\n            radioBar.appendChild(createRadiobox(\"purple\", \"purple opacity\", this.kpsOpacities, 4, this.draw.bind(this)))\n\n            advancedDiv.appendChild(radioBar);\n            this.element.appendChild(advancedDiv)\n          } else {\n            opacitiesButton.innerText = \"Opacity options\"\n            const el = document.querySelector(\"#kpsDialog0\")\n            if (el) el.remove()\n          }\n        }\n      )\n      opacitiesButton.style.zIndex = 8889\n      opacitiesButton.style.position = \"absolute\"\n      this.element.appendChild(opacitiesButton);\n    }\n\n    createZoomSlider () {\n      const el = createSlider(\"Zoom\", \"instantIdZoomSlider\", this.min_zoom, \"2\", \"0.1\", this.zoom_ratio, (event) => {\n        this.zoom_ratio = parseFloat(event.target.value)\n        this.invalidatePanZoom()\n      })\n      return el\n    }\n\n    drawMoveAll () {\n      const pad = 20\n      const w = 60\n      const ctx = this.canvas.getContext('2d')\n      let x = this.kps.reduce((a, b) => a[0] > b[0] ? a : b)[0] + pad\n      let y = this.kps.reduce((a, b) => a[1] > b[1] ? a : b)[1] + pad\n  \n      ctx.beginPath();\n      ctx.fillStyle = \"rgb(8, 105, 216)\";\n  \n      ctx.beginPath();\n      ctx.rect(x, y, w, w);\n      ctx.fill();\n  \n      ctx.font = '40px Arial';\n      ctx.fillStyle = 'white';\n      ctx.textAlign = 'center';\n      ctx.fillText('M', x + 30, y + 40);\n    }\n}\n\nexport class KPSDialog2d extends KPSDialogBase{\n  constructor(w, h, referenceImage, angleWidget, kpsJsonWidget) {\n    super(w, h, referenceImage)\n\n    this.hasImage = referenceImage ? true  : false\n    if (this.hasImage) {\n      this.opacity = \"0.6\"\n    } else {\n      this.opacity = \"1\"\n    }\n\n    this.kpsOpacities = kpsJsonWidget.value.opacities.length ? JSON.parse(JSON.stringify(kpsJsonWidget.value.opacities)) : [1, 1, 1, 1, 1]\n    this.kps = kpsJsonWidget.value.array.length ? JSON.parse(JSON.stringify(kpsJsonWidget.value.array)) : this.getDefaultKps()\n\n    this.angleWidget = angleWidget\n    this.kpsJsonWidget = kpsJsonWidget\n    \n    if (this.hasImage) {\n      this.imageCanvas = document.createElement(\"canvas\")\n      this.imageCanvas.style.position = \"absolute\"\n      this.imageCanvas.style.zIndex = \"-2\"\n      this.imageCanvas.style.pointerEvents = \"none\"\n      this.element.appendChild(this.imageCanvas)\n      this.imageCanvas.width = this.canvasWidth\n      this.imageCanvas.height = this.canvasHeight\n    }\n\n    this.setBasicControls()\n    this.setControls()\n    this.attachListeners()\n    this.canvas.style.opacity = this.opacity\n    this.element.style.display = \"block\"\n    this.initializeCanvasPanZoom()\n\n    this.draw()\n    if (this.hasImage) this.drawImage(referenceImage)\n  }\n\n  getDefaultKps () {\n    const halfWidth = this.canvasWidth / 2;\n    const halfHeight = this.canvasHeight / 2;\n    return [\n      [halfWidth - halfWidth / 2, halfHeight - halfHeight / 2],\n      [halfWidth + halfWidth / 2, halfHeight - halfHeight / 2],\n      [halfWidth, halfHeight],\n      [halfWidth - halfWidth / 2, halfHeight + halfHeight / 2],\n      [halfWidth + halfWidth / 2, halfHeight + halfHeight / 2],\n    ]\n  }\n\n  setControls () {\n    const buttonBar = document.querySelector(\"#instantIdButtonBar\")\n    if (this.hasImage) {\n      buttonBar.appendChild(this.createOpacitySlider())\n    }\n  }\n\n  createOpacitySlider () {\n    const el = createSlider(\"Opacity\", \"instantIdOpacitySlider\", \"0.1\", \"1\", \"0.1\", this.opacity, (event) => {\n      this.opacity = event.target.value\n      this.canvas.style.opacity = event.target.value\n    })\n    return el\n  }\n\n  attachListeners () {\n    this.canvas.addEventListener('mousedown', this.mouseDown.bind(this))\n    this.canvas.addEventListener('mousemove', this.mouseMove.bind(this))\n    this.canvas.addEventListener('mouseup', this.mouseUp.bind(this))\n    this.element.addEventListener('wheel', this.wheel.bind(this))\n    this.element.addEventListener('DOMMouseScroll', (e) => e.preventDefault()) // thanks firefox.\n    this.element.addEventListener('keydown', (event) => {\n      if (event.key === \"Escape\") {\n        this.closeModal()\n      } else if (event.key === \"ENTER\") {\n        this.save()\n      }\n    })\n  }\n\n  closeModal () {\n    document.body.removeChild(this.element)\n  }\n\n  async save () {\n\n    const minX = Math.min(...this.kps.map(e => e[0]))\n    const maxX = Math.max(...this.kps.map(e => e[0]))\n\n    const minY = Math.min(...this.kps.map(e => e[1]))\n    const maxY = Math.max(...this.kps.map(e => e[1]))\n\n    this.kpsJsonWidget.value = {\n      array: this.kps,\n      opacities: this.kpsOpacities,\n      width: this.canvasWidth,\n      height: this.canvasHeight,\n      bbox: [\n        [\n          Math.max(Math.ceil(minX - ((maxX - minX) /3)), 0),\n          Math.max(Math.ceil(minY - ((maxY - minY) /3)), 0)\n        ],\n        [\n          Math.min(Math.ceil(maxX + ((maxX - minX) /3)), this.canvasWidth),\n          Math.min(Math.ceil(maxY + ((maxY - minY) /3)), this.canvasHeight)\n        ],       \n      ]\n    }\n\n    this.kpsJsonWidget.callback()\n    const a = this.kps[0]\n    const b = this.kps[1]\n    let angle = Math.atan2(b[1] - a[1], b[0] - a[0]) * 180 / Math.PI\n\n    this.angleWidget.value = angle\n    this.closeModal()\n  }\n\n  changePointsPosition(closer = false, step = 10) {\n    step /= this.zoom_ratio;\n    const center = this.kps[2]\n\n    const points = this.kps\n\n    const magnitudes = points.map((point, index) => {\n        if (index === 2) return Infinity; // Skip the center point (no magnitude calculation)\n        const direction = [center[0] - point[0], center[1] - point[1]]\n        return Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1])\n    });\n\n    const allGreaterThan50 = magnitudes.every(mag => mag > 10)\n\n    return points.map((point, index) => {\n        if (index === 2) return point\n        const direction = [center[0] - point[0], center[1] - point[1]]\n        const magnitude = magnitudes[index]\n\n        const scaleFactor = closer ? (magnitude - step) / magnitude : (magnitude + step) / magnitude;\n        const scaledMoveVector = [direction[0] * scaleFactor, direction[1] * scaleFactor];\n\n        if (closer) {\n            if (allGreaterThan50) {\n                return [\n                    center[0] - scaledMoveVector[0],\n                    center[1] - scaledMoveVector[1]\n                ];\n            }\n            return point\n        } else {\n            return [\n                center[0] - scaledMoveVector[0],\n                center[1] - scaledMoveVector[1]\n            ];\n        }\n    });\n  }\n\n\n  mouseDown (event) {\n    event.preventDefault()\n    const { offsetX: mouseX, offsetY: mouseY } = event\n\n        if (event.ctrlKey) {\n          if (event.buttons == 1) {\n            this.mousedown_x = event.clientX\n            this.mousedown_y = event.clientY\n            this.mousedown_pan_x = this.pan_x\n            this.mousedown_pan_y = this.pan_y\n          }\n          return;\n        } else {\n      let maxX = -Infinity\n      let maxY = -Infinity\n\n            this.kps.forEach((kp, idx) => {\n              let [x, y] = kp;\n              x *= this.zoom_ratio\n              y *= this.zoom_ratio\n        maxX = x > maxX ? x : maxX\n        maxY = y > maxY ? y : maxY\n              const distance = Math.sqrt((x - mouseX) ** 2 + (y - mouseY) ** 2)\n              if (distance < 20 * (this.zoom_ratio)) {\n          this.isDragging = true;\n          this.draggedPointIndex = idx;\n          return;\n              }\n            });\n      maxX += 20 * this.zoom_ratio\n      maxY += 20 * this.zoom_ratio\n      if ((mouseX >= maxX) && (mouseY >= maxY) && (mouseX < maxX + 60 * this.zoom_ratio) && (mouseY < maxY + 60 * this.zoom_ratio)){\n        this.mousedown_x = event.clientX;\n        this.mousedown_y = event.clientY;\n        this.isDragging = true;\n        this.draggedPointIndex = -1;\n      }\n        }\n  }\n\n  mouseMove (event) {\n    event.preventDefault();\n    const { offsetX: mouseX, offsetY: mouseY } = event\n    this.cursorX = event.pageX\n    this.cursorY = event.pageY\n    if (event.ctrlKey) {\n      if (event.buttons == 1) {\n        if (this.mousedown_x) {\n          let deltaX = this.mousedown_x - event.clientX\n          let deltaY = this.mousedown_y - event.clientY\n          this.pan_x = this.mousedown_pan_x - deltaX\n          this.pan_y = this.mousedown_pan_y - deltaY\n          this.invalidatePanZoom()\n        }\n      }\n    }\n    if (this.isDragging) {\n      const transformedX = (mouseX) / this.zoom_ratio\n      const transformedY = (mouseY) / this.zoom_ratio\n      if(this.draggedPointIndex !== null && this.draggedPointIndex > -1) {\n          this.kps[this.draggedPointIndex] = [transformedX, transformedY]\n      } else if (this.draggedPointIndex === -1) {\n        let deltaX = this.mousedown_x - event.clientX\n        let deltaY = this.mousedown_y - event.clientY\n        this.mousedown_x = event.clientX\n        this.mousedown_y = event.clientY\n\n        this.kps.forEach(el => {\n          el[0] -= deltaX / this.zoom_ratio\n          el[1] -= deltaY / this.zoom_ratio\n        })\n      }\n      this.draw()\n    }\n  }\n\n  mouseUp (event) {\n    event.preventDefault()\n    this.mousedown_x = null\n    this.mousedown_y = null\n    this.isDragging = false\n    this.draggedPointIndex = null\n  }\n\n  wheel (event) {\n    event.preventDefault()\n    if (event.ctrlKey) {\n      if (event.deltaY < 0) {\n        this.zoom_ratio = Math.min(2, this.zoom_ratio + 0.2)\n      } else {\n        this.zoom_ratio = Math.max(this.min_zoom, this.zoom_ratio - 0.2)\n      }\n      document.querySelector(\"#instantIdZoomSlider input\").value = `${this.zoom_ratio}`\n      this.invalidatePanZoom();\n    }\n    else if (event.altKey) {\n      this.kps = this.changePointsPosition(event.deltaY > 0)\n      this.draw()\n    }\n  }\n\n  draw () {\n    this.drawKeyPoints()\n    this.drawMoveAll()\n  }\n\n\n  drawKeyPoints (canvas = this.canvas) {\n    drawKps(canvas, this.kps, this.kpsOpacities)\n  }\n\n  drawImage (ref_image) {\n    /*\n    webgl2 is used to render the reference background\n    with masked images it is impossible to get pixel values\n    */\n    if (checkWebGlSupport()) {\n        const gl = this.imageCanvas.getContext(\"webgl2\");\n        this.drawImageWebGL2(gl, ref_image)\n        return\n    }\n    const ctx = this.imageCanvas.getContext(\"2d\")\n    ctx.drawImage(ref_image, 0, 0);\n  }\n\n  drawImageWebGL2 (gl, image) {\n    const program = gl.createProgram()\n    const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSrc)\n    const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSrc)\n\n    if (!vertexShader || !fragmentShader) {\n      return;\n    }\n\n    gl.attachShader(program, vertexShader)\n    gl.attachShader(program, fragmentShader)\n    gl.linkProgram(program);\n\n    if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n      console.error(gl.getProgramInfoLog(program))\n      return;\n    }\n\n    gl.useProgram(program);\n\n    const buffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n    gl.bufferData(\n      gl.ARRAY_BUFFER,\n      new Float32Array([\n        -1,  1,  0, 1,\n        -1, -1,  0, 0,\n         1,  1,  1, 1,\n         1, -1,  1, 0,\n      ]),\n      gl.STATIC_DRAW\n    )\n\n    gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 4 * 4, 0)\n    gl.enableVertexAttribArray(0)\n    gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 4 * 4, 2 * 4)\n    gl.enableVertexAttribArray(1)\n\n    gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n    gl.activeTexture(gl.TEXTURE0)\n    gl.uniform1i(gl.getUniformLocation(program, 'uSampler'), 0)\n\n    const texture = gl.createTexture()\n    gl.bindTexture(gl.TEXTURE_2D, texture)\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, this.imageCanvas.width, this.imageCanvas.height, 0, gl.RGB, gl.UNSIGNED_BYTE, image)\n    gl.generateMipmap(gl.TEXTURE_2D)\n\n    gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n  }\n}\n\n\nexport class KPSDialog3d extends KPSDialogBase{\n  constructor(w, h, angleWidget, kpsJsonWidget) {\n    super(w, h)\n\n    this.showLandmarks = false\n\n    this.defaultKpsData = kpsJsonWidget.value.defaultKpsData\n\n    this.kpsOpacities = kpsJsonWidget.value.opacities.length ? JSON.parse(JSON.stringify(kpsJsonWidget.value.opacities)) : [1, 1, 1, 1, 1]\n    this.kps = JSON.parse(JSON.stringify(kpsJsonWidget.value.array))\n\n    this.angleWidget = angleWidget\n    this.kpsJsonWidget = kpsJsonWidget\n    \n   \n    const landmarks = [\n      'jawline', 'eyebrow_left', 'eyebrow_right', 'nose_bridge', 'nose_lower',\n      'eye_left', 'eye_right', 'mouth_outer', 'mouth_inner'\n    ]\n    landmarks.forEach(el => {\n      this[el] = kpsJsonWidget.value[el].length ? JSON.parse(JSON.stringify(kpsJsonWidget.value[el])) : []\n    })\n\n    this.rotateX = kpsJsonWidget.value.rotateX || 0\n    this.rotateY = kpsJsonWidget.value.rotateY || 0\n    this.rotateZ = kpsJsonWidget.value.rotateZ || 0\n\n    this.setBasicControls()\n    this.setControls()\n    this.attachListeners()\n\n    this.element.style.display = \"block\"\n    this.initializeCanvasPanZoom()\n\n    this.draw()\n    if (this.hasImage) this.drawImage(referenceImage)\n  }\n\n  getDefaultKps () {\n    try {\n      const data = JSON.parse(this.defaultKpsData)\n      const landmarks = [\n        'jawline', 'eyebrow_left', 'eyebrow_right', 'nose_bridge', 'nose_lower',\n        'eye_left', 'eye_right', 'mouth_outer', 'mouth_inner'\n      ]\n      landmarks.forEach(el => {\n        this[el] = data[el]\n      })\n\n      return data.array\n    } catch (e) {\n      console.error(e)\n    }\n  }\n\n  setControls () {\n    const buttonBar = document.querySelector(\"#instantIdButtonBar\")\n    buttonBar.appendChild(this.createRotationXSlider())\n    buttonBar.appendChild(this.createRotationYSlider())\n    buttonBar.appendChild(this.createRotationZSlider())\n\n    this.element.appendChild(buttonBar);\n  }\n\n  createRotationXSlider () {\n    const el = createSlider(\"rotate X\", \"instantIdRotateX\", \"0\", \"360\", \"1\", this.rotateX, (event) => {\n      this.rotateX = parseFloat(event.target.value)\n      this.draw()\n    })\n    return el\n  }\n\n  createRotationYSlider () {\n    const el = createSlider(\"rotate Y\", \"instantIdRotateY\", \"0\", \"360\", \"1\", this.rotateY, (event) => {\n      this.rotateY = parseFloat(event.target.value)\n      this.draw()\n    })\n    return el\n  }\n\n  createRotationZSlider () {\n    const el = createSlider(\"rotate Z\", \"instantIdRotateZ\", \"0\", \"360\", \"1\", this.rotateZ, (event) => {\n      this.rotateZ = parseFloat(event.target.value)\n      this.draw()\n    })\n    return el\n  }\n\n  attachListeners () {\n    this.canvas.addEventListener('mousedown', this.mouseDown.bind(this))\n    this.canvas.addEventListener('mousemove', this.mouseMove.bind(this))\n    this.canvas.addEventListener('mouseup', this.mouseUp.bind(this))\n    this.element.addEventListener('wheel', this.wheel.bind(this))\n    this.element.addEventListener('DOMMouseScroll', (e) => e.preventDefault()) // thanks firefox.\n    this.element.addEventListener('keydown', (event) => {\n      if (event.key === \"Escape\") {\n        this.closeModal()\n      } else if (event.key === \"ENTER\") {\n        this.save()\n      }\n    })\n  }\n\n  closeModal () {\n    document.body.removeChild(this.element)\n  }\n\n  async save () {\n    this.kpsJsonWidget.value = {\n      array: this.kps,\n      opacities: this.kpsOpacities.map(el => parseFloat(el)),\n      width: this.canvasWidth,\n      height: this.canvasHeight,\n      jawline: this.jawline,\n      eyebrow_left: this.eyebrow_left,\n      eyebrow_right: this.eyebrow_right,\n      nose_bridge: this.nose_bridge,\n      nose_lower: this.nose_lower,\n      eye_left: this.eye_left,\n      eye_right: this.eye_right,\n      mouth_outer: this.mouth_outer,\n      mouth_inner: this.mouth_inner,\n      rotateX: this.rotateX,\n      rotateY: this.rotateY,\n      rotateZ: this.rotateZ,\n      defaultKpsData: this.defaultKpsData\n    }\n \n    this.kpsJsonWidget.callback()\n    const a = this.kps[0]\n    const b = this.kps[1]\n    let angle = Math.atan2(b[1] - a[1], b[0] - a[0]) * 180 / Math.PI\n\n    this.angleWidget.value = angle\n    this.closeModal()\n  }\n\n  changePointsPosition(closer = false, step = 10) {\n    step /= this.zoom_ratio\n\n    const center = getPointsCenter([\n      ...this.kps, ...this.jawline, ...this.eyebrow_left, ...this.eyebrow_right, ...this.nose_bridge,\n      ...this.nose_lower,...this.eye_left, ...this.eye_right, ...this.mouth_outer, ...this.mouth_inner\n    ])\n\n    const points = [\n      ...this.kps, ...this.jawline, ...this.eyebrow_left, ...this.eyebrow_right, ...this.nose_bridge,\n      ...this.nose_lower,...this.eye_left, ...this.eye_right, ...this.mouth_outer, ...this.mouth_inner\n    ]\n\n    const magnitudes = points.map(point => {\n        const direction = [center[0] - point[0], center[1] - point[1], center[2] - point[2]]\n        return Math.sqrt(direction[0] * direction[0] + direction[1] * direction[1] + direction[2] * direction[2])\n    })\n\n    const allGreaterThan50 = magnitudes.every(mag => mag > 10)\n\n    points.forEach((point, index) => {\n        const direction = [center[0] - point[0], center[1] - point[1], center[2] - point[2]]\n        const magnitude = magnitudes[index]\n        const unitVector = [direction[0] / magnitude, direction[1] / magnitude, direction[2] / magnitude]\n\n        const scaleFactor = magnitude / Math.max(...magnitudes)\n        const adjustedStep = step * scaleFactor\n        const moveVector = [unitVector[0] * adjustedStep, unitVector[1] * adjustedStep, unitVector[2] * adjustedStep]\n\n        if (closer) {\n            if (allGreaterThan50) {\n                point[0] += moveVector[0]\n                point[1] += moveVector[1]\n                point[2] += moveVector[2]\n            }\n        } else {\n            point[0] -= moveVector[0]\n            point[1] -= moveVector[1]\n            point[2] -= moveVector[2]\n        }\n    })\n  }\n\n  mouseDown (event) {\n    event.preventDefault()\n    const { offsetX: mouseX, offsetY: mouseY } = event\n\n        if (event.ctrlKey) {\n          if (event.buttons == 1) {\n            this.mousedown_x = event.clientX\n            this.mousedown_y = event.clientY\n            this.mousedown_pan_x = this.pan_x\n            this.mousedown_pan_y = this.pan_y\n          }\n          return;\n        } else {\n          let maxX = -Infinity\n          let maxY = -Infinity\n\n          this.kps.forEach((kp) => {\n            let [x, y] = kp\n            x *= this.zoom_ratio\n            y *= this.zoom_ratio\n            maxX = x > maxX ? x : maxX\n            maxY = y > maxY ? y : maxY\n          });\n          maxX += 20 * this.zoom_ratio\n          maxY += 20 * this.zoom_ratio\n          if ((mouseX >= maxX) && (mouseY >= maxY) && (mouseX < maxX + 60 * this.zoom_ratio) && (mouseY < maxY + 60 * this.zoom_ratio)){\n            this.mousedown_x = event.clientX\n            this.mousedown_y = event.clientY\n            this.isDragging = true;\n            this.draggedPointIndex = -1\n          }\n        }\n  }\n\n  mouseMove (event) {\n    event.preventDefault();\n    this.cursorX = event.pageX\n    this.cursorY = event.pageY\n    if (event.ctrlKey) {\n      if (event.buttons == 1) {\n        if (this.mousedown_x) {\n          let deltaX = this.mousedown_x - event.clientX\n          let deltaY = this.mousedown_y - event.clientY\n          this.pan_x = this.mousedown_pan_x - deltaX\n          this.pan_y = this.mousedown_pan_y - deltaY\n          this.invalidatePanZoom()\n        }\n      }\n    }\n    if (this.isDragging) {\n      let deltaX = this.mousedown_x - event.clientX\n      let deltaY = this.mousedown_y - event.clientY\n      this.mousedown_x = event.clientX\n      this.mousedown_y = event.clientY\n      const points = [\n        this.kps, this.jawline, this.eyebrow_left, this.eyebrow_right, this.nose_bridge,\n        this.nose_lower, this.eye_left, this.eye_right, this.mouth_outer, this.mouth_inner\n      ]\n      points.forEach(p => {\n        p.forEach(el => {\n          el[0] -= deltaX / this.zoom_ratio\n          el[1] -= deltaY / this.zoom_ratio\n        })\n      })\n      this.draw()\n    }\n  }\n\n  mouseUp (event) {\n    event.preventDefault()\n    this.mousedown_x = null\n    this.mousedown_y = null\n    this.isDragging = false\n    this.draggedPointIndex = null\n  }\n\n  wheel (event) {\n    event.preventDefault()\n    if (event.ctrlKey) {\n      if (event.deltaY < 0) {\n        this.zoom_ratio = Math.min(2, this.zoom_ratio + 0.2)\n      } else {\n        this.zoom_ratio = Math.max(this.min_zoom, this.zoom_ratio - 0.2)\n      }\n      document.querySelector(\"#instantIdZoomSlider input\").value = `${this.zoom_ratio}`\n      this.invalidatePanZoom();\n    }\n    else if (event.altKey) {\n      this.changePointsPosition(event.deltaY > 0)\n      this.draw()\n    }\n  }\n\n  draw () {\n    this.drawKeyPoints()\n    const landmarks = [\n      this.jawline, this.eyebrow_left, this.eyebrow_right, this.nose_bridge,\n      this.nose_lower, this.eye_left, this.eye_right, this.mouth_inner, this.mouth_outer\n    ]\n    landmarks.forEach(points => { this.drawLandmarks(points) })\n    this.drawMoveAll()\n  }\n\n  drawLandmarks (p, canvas = this.canvas) {\n    if (p.length === 0) return\n    const ctx = canvas.getContext('2d')\n    const points = rotatePoints3D(p.map(el => [...el]), this.kps, this.rotateX, this.rotateY, this.rotateZ)\n\n    ctx.beginPath()\n    ctx.strokeStyle  = \"white\"\n\n    for (let i = 1; i < points.length; i++) {\n        ctx.moveTo(points[i - 1][0], points[i - 1][1]);\n        ctx.lineTo(points[i][0], points[i][1]);\n    }\n    ctx.stroke()\n  }\n\n  drawKeyPoints (canvas = this.canvas) {\n    const kps = rotatePoints3D(this.kps.map(el => [...el]), this.kps, this.rotateX, this.rotateY, this.rotateZ)\n    drawKps(canvas, kps, this.kpsOpacities)\n  }\n}"
  },
  {
    "path": "ui/extension.js",
    "content": "import { app } from \"../../scripts/app.js\";\nimport { api } from \"../../scripts/api.js\";\nimport { drawKps, normalizePoints, rotatePoints3D, getImgFromInput, getDefaultKpsData } from \"./helpers.js\"\nimport { KPSDialog2d, KPSDialog3d } from \"./dialogs.js\"\n\n\napp.registerExtension({\n  getCustomWidgets(app) {\n    return {\n      HIDDEN_STRING_JSON(node, inputName, inputData) {\n        const widget = {\n            type: inputData[0],\n            name: inputName,\n            async serializeValue() {\n              return JSON.stringify(widget.value)\n            }\n        }\n        node.addCustomWidget(widget)\n        return  widget\n      }\n    }\n  },\n  name: \"ComfyUI.instantid-faceswap\",\n  async beforeRegisterNodeDef(nodeType, nodeData, app) {\n    if (nodeType.comfyClass == \"KpsDraw\" || nodeType.comfyClass == \"Kps3dFromImage\") {\n      nodeType.prototype.showImage = function () {\n        let w = this.widgets.find(w => w.name === \"width\").value\n        let h = this.widgets.find(w => w.name === \"height\").value\n\n        if (w > 0 && h > 0) {\n          let kpsWidget = this.widgets.find(w => w.name === \"kps\")\n          let kps = kpsWidget.value.array\n          let kps_opacities = kpsWidget.value.opacities\n\n          if (kps?.length === 0) {\n            try {\n              const parsed_kps = JSON.parse(kpsWidget.value)\n              kps = parsed_kps.array\n              if (parsed_kps.opacities && parsed_kps.opacities.length) {\n                kps_opacities = parsed_kps.opacities\n              }\n            } catch(e) {\n              console.log(e)\n              return;\n            }\n          }\n          if (kps) {\n            const c = document.createElement(\"canvas\")\n            c.width = w\n            c.height = h\n            if (kpsWidget.value.rotateX || kpsWidget.value.rotateY || kpsWidget.value.rotateZ) {\n              kps = rotatePoints3D(kps.map(el => [...el]), kps, kpsWidget.value.rotateX, kpsWidget.value.rotateY, kpsWidget.value.rotateZ)\n            }\n            drawKps(c, kps, kps_opacities)\n            const image = new Image()\n            image.src = c.toDataURL()\n            this.imgs = [image]\n            this.setSizeForImage()\n            app.graph.setDirtyCanvas(true)\n          }\n        }\n      }\n\n      const onNodeCreated = nodeType.prototype.onNodeCreated;\n      nodeType.prototype.onNodeCreated = function() {\n        const r = onNodeCreated ? onNodeCreated.apply(this, arguments) : undefined;\n        this.kpsJsonWidget = this.widgets.find(w => w.name === \"kps\")\n        this.kpsJsonWidget.callback = this.showImage.bind(this)\n        if (this.kpsJsonWidget.value == null) {\n          this.kpsJsonWidget.value = getDefaultKpsData()\n        }\n\n        requestAnimationFrame(() => {\n          if (this.kpsJsonWidget.value?.array?.length) {\n            this.showImage();\n          }\n        })\n\n        const angleWidget = this.addWidget(\"string\", \"angle\", \"\", () => {})\n\n        if (nodeType.comfyClass == \"Kps3dFromImage\") {\n\n          const div = document.createElement(\"div\")\n          div.style.fontSize = \"12px\"\n          div.style.backgroundColor = \"#323334\"\n          div.style.padding = \"8px\"\n          div.innerText = \"\";\n          \n          this.addDOMWidget(\"info_text2\", \"\", div, {getMaxHeight: () => 50})\n          \n          const doMagic = this.addWidget(\"button\", \"getKPS\", \"\", () => {\n            const inputNode = getImgFromInput(this.getInputNode(0))\n\n            const reference_image = inputNode.imgs[inputNode.imageIndex || 0].currentSrc\n            div.style.color = \"white\"\n            div.innerText = \"Getting landmarks ...\"\n\n            doMagic.disabled = true\n            openDialogWidget.disabled = true\n            api.fetchApi(\"/get_keypoints_for_instantId\", {\n                method: \"POST\",\n                headers: {\n                  \"Content-Type\": \"application/json\",\n                },\n                body: JSON.stringify({image: reference_image})\n              }).then(async (data) => {\n                const json = await data.json()\n                if (json.error) {\n                  throw Error(json.error)\n                }\n                const normalizedPoints = normalizePoints(\n                  [\n                    ...json.data.jawline,\n                    ...json.data.eyebrow_left,\n                    ...json.data.eyebrow_right,\n                    ...json.data.nose_bridge,\n                    ...json.data.nose_lower,\n                    ...json.data.eye_left,\n                    ...json.data.eye_right,\n                    ...json.data.mouth_outer,\n                    ...json.data.mouth_inner,\n                    ...json.data.kps\n                  ],\n                  this.widgets.find(w => w.name === \"width\").value, this.widgets.find(w => w.name === \"height\").value\n                )\n\n                this.kpsJsonWidget.value = getDefaultKpsData()\n\n                this.kpsJsonWidget.value.jawline = normalizedPoints.slice(0, 17)\n                this.kpsJsonWidget.value.eyebrow_left = normalizedPoints.slice(17, 22)\n                this.kpsJsonWidget.value.eyebrow_right = normalizedPoints.slice(22, 27)\n                this.kpsJsonWidget.value.nose_bridge = normalizedPoints.slice(27, 31)\n                this.kpsJsonWidget.value.nose_lower = normalizedPoints.slice(31, 36)\n                this.kpsJsonWidget.value.eye_left = normalizedPoints.slice(36, 42)\n                this.kpsJsonWidget.value.eye_right = normalizedPoints.slice(42, 48)\n                this.kpsJsonWidget.value.mouth_outer = normalizedPoints.slice(48, 60)\n                this.kpsJsonWidget.value.mouth_inner = normalizedPoints.slice(60, 68)\n\n                this.kpsJsonWidget.value.array = [\n                  normalizedPoints[normalizedPoints.length - 5],\n                  normalizedPoints[normalizedPoints.length - 4],\n                  normalizedPoints[normalizedPoints.length - 3],\n                  normalizedPoints[normalizedPoints.length - 2],\n                  normalizedPoints[normalizedPoints.length - 1]\n                ]\n                this.kpsJsonWidget.value.width = this.widgets.find(w => w.name === \"width\").value\n                this.kpsJsonWidget.value.height = this.widgets.find(w => w.name === \"height\").value\n\n                this.kpsJsonWidget.value.defaultKpsData = JSON.stringify(this.kpsJsonWidget.value) \n                div.style.color = \"#08a85a\"\n                div.innerText = \"Success\"\n\n                this.showImage()\n\n              }).catch(e => {\n                div.style.color = \"#C70039\"\n                div.innerText = \"ERROR\"\n                div.innerText = e.message || \"ERROR\"\n                console.log(e)\n              }).finally(() => {\n                doMagic.disabled = false\n                openDialogWidget.disabled = false\n              })\n          })\n          doMagic.label = \"Get Kps From Image\";\n        }\n\n\n        const openDialogWidget = this.addWidget(\"button\", \"drawbtn\", \"\", () => {\n          let w = this.widgets.find(w => w.name === \"width\").value\n          let h = this.widgets.find(w => w.name === \"height\").value\n          let reference_image\n          const inputNode = getImgFromInput(this.getInputNode(0))\n          if (inputNode?.imgs?.length && nodeType.comfyClass != \"Kps3dFromImage\") {\n            reference_image = inputNode.imgs[inputNode.imageIndex || 0]\n            w = reference_image.width\n            h = reference_image.height\n          }\n\n          if (w > 0 && h > 0) {\n            if (nodeType.comfyClass == \"Kps3dFromImage\") {\n              new KPSDialog3d(w, h, angleWidget,  this.kpsJsonWidget)\n            } else {\n              new KPSDialog2d(\n                w, h, reference_image, angleWidget, this.kpsJsonWidget\n              )\n            }\n          }\n        });\n\n        const buttonText = nodeType.comfyClass === \"KpsDraw\" ? \"draw kps\" : \"change kps\"\n\n        openDialogWidget.label = buttonText\n        angleWidget.label = \"angle: \"\n        angleWidget.value = \"none\"\n        angleWidget.disabled = true\n      }\n      this.serialize = true\n\n      const onConnectionsChange = nodeType.prototype.onConnectionsChange;\n      nodeType.prototype.onConnectionsChange = function (side, slot, connect, link_info, output) {\n        const r = onConnectionsChange?.apply(this, arguments);\n\n        if (output.name === \"image_reference\" && nodeType.comfyClass == \"KpsDraw\") {\n          const widthWidget = this.widgets.find(w => w.name === \"width\");\n          const heightWidget = this.widgets.find(w => w.name === \"height\");\n          const angleWidget = this.widgets.find(w => w.name === \"angle\");\n\n          this.imgs = []\n          if (output.link) {\n            widthWidget.disabled = true\n            heightWidget.disabled = true\n            const inputNode = getImgFromInput(this.getInputNode(0))\n            if (inputNode?.imgs?.length) {\n              const reference_image = inputNode.imgs[inputNode.imageIndex || 0]\n              widthWidget.value = reference_image.width\n              heightWidget.value = reference_image.height\n            }\n          } else {\n            widthWidget.disabled = false\n            heightWidget.disabled = false\n          }\n\n          if (angleWidget) {\n            angleWidget.value = \"none\"\n          }\n        }\n\n        if (output.name === \"image\" && nodeType.comfyClass == \"Kps3dFromImage\") {\n          this.imgs = []\n          const getKPSWidget = this.widgets.find(w => w.name === \"getKPS\")\n          getKPSWidget.disabled = !!!output.link\n        }\n        return r;\n      }\n    }\n  }\n})"
  },
  {
    "path": "ui/helpers.js",
    "content": "export const getPointsCenter = (points) => {\n  let sumX = 0, sumY = 0, sumZ = 0;\n  points.forEach(([x, y, z]) => {\n      sumX += x;\n      sumY += y;\n      if (z != null) sumZ += z\n  });\n\n  const ret = [sumX / points.length, sumY / points.length]\n  if (points[0].length > 2) ret.push(sumZ / points.length)\n  return ret\n}\n\nexport const getPoinsMinMax = (points) => {\n  let minX = points[0][0], maxX = points[0][0];\n  let minY = points[0][1], maxY = points[0][1];\n  points.forEach(([x, y]) => {\n      if (x < minX) minX = x;\n      if (x > maxX) maxX = x;\n      if (y < minY) minY = y;\n      if (y > maxY) maxY = y;\n  });\n  return { minX, maxX, minY, maxY };\n}\n\nexport const drawKps = (canvas, kps, opacities) => {\n  const color_list = [\n    `255, 0, 0,`,\n    `0, 255, 0,`,\n    `0, 0, 255,`,\n    `255, 255, 0,`,\n    `255, 0, 255,`\n  ]\n\n    const ctx = canvas.getContext(\"2d\")\n  const stickWidth = 10;\n  const limbSeq = [[0, 2], [1, 2], [3, 2], [4, 2]]\n\n  ctx.clearRect(0, 0, canvas.width, canvas.height)\n  ctx.fillStyle = \"black\"\n  ctx.fillRect(0, 0, canvas.width, canvas.height)\n  ctx.save()\n  limbSeq.forEach((limb, idx) => {\n    const kp1 = kps[limb[0]]\n    const kp2 = kps[limb[1]]\n    const color = `rgba( ${color_list[limb[0]]} ${0.6 * opacities[limb[0]]})`\n\n    const x = [kp1[0], kp2[0]];\n    const y = [kp1[1], kp2[1]];\n    const length = Math.sqrt((x[0] - x[1]) ** 2 + (y[0] - y[1]) ** 2)\n    const angle = Math.atan2(y[1] - y[0], x[1] - x[0])\n\n    const num_points = 20;\n    const polygon = []\n\n    const midX = (x[0] + x[1]) / 2\n    const midY = (y[0] + y[1]) / 2\n\n    for (let i = 0; i <= num_points; i++) {\n      const theta = (i / num_points) * Math.PI * 2\n      const dx = (length / 2) * Math.cos(theta);\n      const dy = (stickWidth / 2) * Math.sin(theta);\n      const rx = Math.cos(angle) * dx - Math.sin(angle) * dy + midX\n      const ry = Math.sin(angle) * dx + Math.cos(angle) * dy + midY\n      polygon.push([rx, ry]);\n    }\n\n    ctx.beginPath();\n    ctx.moveTo(polygon[0][0], polygon[0][1])\n    for (let i = 1; i < polygon.length; i++) {\n      ctx.lineTo(polygon[i][0], polygon[i][1])\n    }\n    ctx.closePath();\n    ctx.fillStyle = color;\n    ctx.fill();\n  })\n\n  kps.forEach((kp, idx) => {\n    const [x, y] = kp;\n    const color = `rgba( ${color_list[idx]} ${opacities[idx]})`\n    ctx.beginPath();\n    ctx.arc(x, y, 10, 0, Math.PI * 2);\n    ctx.fillStyle = color;\n    ctx.fill();\n  });\n  ctx.restore();\n}\n\nexport const checkWebGlSupport = () => {\n  const canvas = document.createElement(\"canvas\");\n  const gl = canvas.getContext(\"webgl2\")\n  return !!gl\n}\n\nexport const normalizePoints = (points, w, h) => {\n  const minValues = [\n    Math.min(...points.map(p => p[0])),\n    Math.min(...points.map(p => p[1])),\n    Math.min(...points.map(p => p[2]))\n  ];\n\n  const maxValues = [\n    Math.max(...points.map(p => p[0])),\n    Math.max(...points.map(p => p[1])),\n    Math.max(...points.map(p => p[2]))\n  ];\n\n  const ranges = [\n    maxValues[0] - minValues[0], \n    maxValues[1] - minValues[1],\n    maxValues[2] - minValues[2] \n  ];\n\n  const scaleX = w / ranges[0]\n  const scaleY = h / ranges[1]\n\n  const scaleFactor = Math.min(scaleX, scaleY);\n\n  const normalizedPoints = points.map(point => [\n    (point[0] - minValues[0]) * scaleFactor,\n    (point[1] - minValues[1]) * scaleFactor,\n    (point[2] - minValues[2]) * scaleFactor\n  ]);\n\n  const maxNormalizedValues = [\n    Math.max(...normalizedPoints.map(p => p[0])),\n    Math.max(...normalizedPoints.map(p => p[1])),\n    Math.max(...normalizedPoints.map(p => p[2]))\n  ];\n\n  const centerOffset = [\n    (w - maxNormalizedValues[0]) / 2,\n    (h - maxNormalizedValues[1]) / 2,\n    -maxNormalizedValues[2] / 2\n  ];\n\n  const centeredPoints = normalizedPoints.map(point => [\n    point[0] + centerOffset[0],\n    point[1] + centerOffset[1],\n    point[2] + centerOffset[2]\n  ]);\n\n  return centeredPoints;\n}\n\nexport const rotatePoints3D = (points, kps, angleXDeg, angleYDeg, angleZDeg) => {\n  const angleX = angleXDeg * (Math.PI / 180);\n  const angleY = angleYDeg * (Math.PI / 180);\n  const angleZ = angleZDeg * (Math.PI / 180);\n\n  const numPoints = kps.length;\n  const center = kps.reduce((acc, point) => {\n    acc[0] += point[0]\n    acc[1] += point[1]\n    acc[2] += point[2]\n    return acc;\n  }, [0, 0, 0]).map(coord => coord / numPoints)\n\n  const translatedPoints = points.map(point => [\n    point[0] - center[0],\n    point[1] - center[1],\n    point[2] - center[2]\n  ]);\n\n  function rotateX(point, angle) {\n    const cosTheta = Math.cos(angle);\n    const sinTheta = Math.sin(angle);\n    return [\n      point[0],\n      point[1] * cosTheta - point[2] * sinTheta,\n      point[1] * sinTheta + point[2] * cosTheta\n    ];\n  }\n\n  function rotateY(point, angle) {\n    const cosTheta = Math.cos(angle);\n    const sinTheta = Math.sin(angle);\n    return [\n      point[0] * cosTheta + point[2] * sinTheta,\n      point[1],\n      -point[0] * sinTheta + point[2] * cosTheta\n    ];\n  }\n\n  function rotateZ(point, angle) {\n    const cosTheta = Math.cos(angle);\n    const sinTheta = Math.sin(angle);\n    return [\n      point[0] * cosTheta - point[1] * sinTheta,\n      point[0] * sinTheta + point[1] * cosTheta,\n      point[2]\n    ];\n  }\n\n  const rotatedPoints = translatedPoints.map(point => {\n    let rotatedPoint = rotateX(point, angleX)\n    rotatedPoint = rotateY(rotatedPoint, angleY)\n    rotatedPoint = rotateZ(rotatedPoint, angleZ)\n    return rotatedPoint;\n  });\n\n  const finalPoints = rotatedPoints.map(point => [\n    point[0] + center[0],\n    point[1] + center[1],\n    point[2] + center[2]\n  ])\n\n  return finalPoints\n}\n\nexport const getImgFromInput = (inputNode) => {\n  if (inputNode?.type === \"Reroute\") {\n    return getImgFromInput(inputNode.getInputNode(0))\n  }\n  return inputNode\n} \n\nexport const getDefaultKpsData = () => ({\n    array: [], height: 0, width: 0, rotateX: 0, rotateY: 0, rotateZ: 0 , opacities: [1, 1, 1, 1, 1],\n    jawline: [], eyebrow_left: [], eyebrow_right: [], nose_bridge: [], nose_lower: [], \n    eye_left: [], eye_right: [], mouth_outer: [], mouth_inner: []\n})"
  },
  {
    "path": "ui/shaders.js",
    "content": "export const vertexShaderSrc = `#version 300 es\n#pragma vscode_glsllint_stage: vert\nlayout(location=0) in vec4 aPosition;\nlayout(location=1) in vec2 aTexCoord;\nout vec2 vTexCoord;\nvoid main()\n{\n  vTexCoord = aTexCoord;\n    gl_Position = aPosition;\n}`;\n\nexport const fragmentShaderSrc = `#version 300 es\n#pragma vscode_glsllint_stage: frag\nprecision mediump float;\nin vec2 vTexCoord;\nuniform sampler2D uSampler;\nout vec4 fragColor;\nvoid main()\n{\n    fragColor = texture(uSampler, vTexCoord);\n}`;\n\n\nexport const createShader = (gl, type, source) => {\n  const shader = gl.createShader(type)\n  gl.shaderSource(shader, source)\n  gl.compileShader(shader)\n  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n    console.error(gl.getShaderInfoLog(shader))\n    gl.deleteShader(shader)\n    return null\n  }\n  return shader\n}"
  },
  {
    "path": "ui/uiHelpers.js",
    "content": "export const createSlider = (name, id, min, max, step, value, callback) => {\n    const divElement = document.createElement(\"div\");\n    divElement.id = id;\n    divElement.style.cssFloat = \"left\"\n    divElement.style.fontFamily = \"sans-serif\"\n    divElement.style.marginRight = \"4px\"\n    divElement.style.color = \"var(--input-text)\"\n    divElement.style.backgroundColor = \"var(--comfy-input-bg)\"\n    divElement.style.borderRadius = \"8px\"\n    divElement.style.borderColor = \"var(--border-color)\"\n    divElement.style.borderStyle = \"solid\"\n    divElement.style.fontSize = \"15px\"\n    divElement.style.height = \"21px\"\n    divElement.style.padding = \"1px 6px\"\n    divElement.style.display = \"flex\"\n    divElement.style.position = \"relative\"\n    divElement.style.top = \"2px\"\n    divElement.style.pointerEvents = \"auto\"\n\n    const input = document.createElement(\"input\")\n    const labelElement = document.createElement(\"label\")\n    input.setAttribute(\"type\", \"range\")\n    input.setAttribute(\"min\", `${min}`)\n    input.setAttribute(\"max\", `${max}`)\n    input.setAttribute(\"step\", `${step}`)\n    input.setAttribute(\"value\", `${value}`)\n    labelElement.textContent = name;\n    divElement.appendChild(labelElement)\n    divElement.appendChild(input)\n    input.addEventListener(\"input\", callback)\n    return divElement;\n  }\n\n  export const createButton = (name, isRight, callback) => {\n    const button = document.createElement(\"button\");\n    button.innerText = name;\n    button.style.pointerEvents = \"auto\";\n    button.addEventListener(\"click\", callback);\n    if (isRight) {\n      button.style.cssFloat = \"right\";\n      button.style.marginLeft = \"4px\";\n    } else {\n      button.style.cssFloat = \"left\";\n      button.style.marginRight = \"4px\";\n    }\n    return button;\n  }\n\n  export const createRadiobox = (name, label, opacities, index, callback) => {\n    const div = document.createElement(\"div\");\n    div.style.marginTop = \"20px\"\n    const sliderInput = document.createElement(\"input\")\n    sliderInput.style.pointerEvents = \"auto\"\n    sliderInput.id = `opacity_slider_${name}`\n    sliderInput.type = \"range\"\n    sliderInput.step = \"0.1\"\n    sliderInput.min = \"0\"\n    sliderInput.max = \"1\"\n    sliderInput.tabIndex = \"1\"\n    sliderInput.style.width = \"100%\"\n    sliderInput.name = `s_${name}`\n    sliderInput.value = opacities[index]\n    sliderInput.addEventListener(\"change\", (event) => {\n      const input = document.querySelector(`#opacity_input_${name}`)\n      if (input) input.value = event.target.value;\n      opacities[index] = event.target.value;\n      callback()\n    })\n\n    const valueInput = document.createElement(\"input\")\n    valueInput.style.pointerEvents = \"auto\"\n    valueInput.id = `opacity_input_${name}`\n    valueInput.type = \"number\";\n    valueInput.min = \"0\";\n    valueInput.max = \"1\";\n    valueInput.tabIndex = \"1\"\n    valueInput.style.width = \"100%\"\n    valueInput.name = `i_${name}`\n    valueInput.value = opacities[index];\n    valueInput.addEventListener(\"change\", (event) => {\n      const input = document.querySelector(`#opacity_slider_${name}`)\n      if (input) input.value = event.target.value\n      opacities[index] = event.target.value\n      callback()\n    })\n\n    div.style.marginRight = \"4px\";\n    const labelDiv = document.createElement(\"div\")\n    labelDiv.innerText = label\n    div.appendChild(labelDiv)\n    div.appendChild(sliderInput)\n    div.appendChild(valueInput)\n    return div\n  }"
  },
  {
    "path": "utils.py",
    "content": "import numpy as np\nimport cv2\nimport math\nimport torch\nimport math\nimport torch.nn.functional as F\nfrom torchvision.transforms import functional as TF\nfrom .ip_adapter.instantId import CrossAttentionPatch\n\ndef draw_kps(w, h, kps, color_list=[(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 0, 255)], alphas=[1, 1, 1, 1, 1]):\n    stickwidth = 4\n    limbSeq = np.array([[0, 2], [1, 2], [3, 2], [4, 2]])\n    kps = np.array(kps)\n    out_img = np.zeros([int(h), int(w), 3], dtype=np.uint8)\n\n    for i in range(len(limbSeq)):\n        index = limbSeq[i]\n        color = color_list[index[0]]\n        alpha = alphas[index[0]]\n\n        x = kps[index][:, 0]\n        y = kps[index][:, 1]\n        length = ((x[0] - x[1]) ** 2 + (y[0] - y[1]) ** 2) ** 0.5\n        angle = math.degrees(math.atan2(y[0] - y[1], x[0] - x[1]))\n\n        polygon = cv2.ellipse2Poly(\n            (int(np.mean(x)), int(np.mean(y))), (int(length / 2), stickwidth), int(angle), 0, 360, 1\n        )\n\n        limb_img = np.zeros_like(out_img)\n        cv2.fillConvexPoly(limb_img, polygon, color)\n        out_img = cv2.addWeighted(out_img, 1, limb_img, float(alpha) * 0.6, 0)\n\n    for idx_kp, kp in enumerate(kps):\n        color = color_list[idx_kp]\n        alpha = alphas[idx_kp] \n        x = kp[0]\n        y = kp[1]\n        kp_img = out_img.copy()\n        cv2.circle(kp_img, (int(x), int(y)), 10, color, -1)\n        out_img = cv2.addWeighted(out_img, 1 - float(alpha), kp_img, float(alpha), 0)\n\n    return out_img.astype(np.uint8)\n\n\n# based on https://github.com/laksjdjf/IPAdapter-ComfyUI/blob/main/ip_adapter.py#L19\ndef set_model_patch_replace(model, patch_kwargs, key):\n  attn = \"attn2\"\n  to = model.model_options[\"transformer_options\"].copy()\n  if \"patches_replace\" not in to:\n    to[\"patches_replace\"] = {}\n  else:\n    to[\"patches_replace\"] = to[\"patches_replace\"].copy()\n\n  if attn not in to[\"patches_replace\"]:\n    to[\"patches_replace\"][attn] = {}\n  else:\n    to[\"patches_replace\"][attn] = to[\"patches_replace\"][attn].copy()\n  if key not in to[\"patches_replace\"][attn]:\n    to[\"patches_replace\"][attn][key] = CrossAttentionPatch(**patch_kwargs)\n    model.model_options[\"transformer_options\"] = to\n  else:\n    to[\"patches_replace\"][attn][key].set_new_condition(**patch_kwargs)\n\n\ndef resize_to_fit_area(original_width, original_height, area_width, area_height):\n  base_pixels = 8\n  max_area= area_width * area_height\n  aspect_ratio = original_width / original_height\n\n  scale_factor = math.sqrt(max_area / (original_width * original_height))\n  new_width = int(original_width * scale_factor)\n  new_height = int(original_height * scale_factor)\n\n  new_width = new_width // base_pixels * base_pixels\n  new_height = new_height // base_pixels * base_pixels\n\n  if new_width * new_height > max_area:\n      new_width = math.floor(math.sqrt(max_area * aspect_ratio)) // base_pixels * base_pixels\n      new_height = math.floor(new_width / aspect_ratio) // base_pixels * base_pixels\n\n  return (new_width, new_height)\n\n\ndef get_mask_bbox_with_padding(mask_image, pad_top, pad_right, pad_bottom, pad_left):\n  mask_segments = torch.nonzero(mask_image == 1, as_tuple=False)\n  if torch.count_nonzero(mask_segments).item() == 0:\n    raise Exception(\"Draw a mask on pose image\")\n\n  m_y1 = torch.min(mask_segments[:, 0]).item()\n  m_y2 = torch.max(mask_segments[:, 0]).item()\n  m_x1 = torch.min(mask_segments[:, 1]).item()\n  m_x2 = torch.max(mask_segments[:, 1]).item()\n\n  height, width = mask_image.shape\n\n  p_x1 = max(0, m_x1 - pad_left)\n  p_y1 = max(0, m_y1 - pad_top)\n  p_x2 = min(width, m_x2 + pad_right)\n  p_y2 = min(height, m_y2 + pad_bottom)\n\n  return int(p_x1), int(p_y1), int(p_x2), int(p_y2)\n\n\ndef get_kps_from_image(image, insightface):\n  np_pose_image = (255.0 * image.cpu().numpy().squeeze()).clip(0, 255).astype(np.uint8)\n  face_info = insightface.get(cv2.cvtColor(np_pose_image, cv2.COLOR_RGB2BGR))\n  assert len(face_info) > 0, \"No face detected in pose image\"\n  face_info = sorted(face_info, key=lambda x: (x[\"bbox\"][2] - x[\"bbox\"][0]) * (x[\"bbox\"][3] - x[\"bbox\"][1]))[-1] # only use the maximum face\n  return face_info[\"kps\"]\n\n\ndef get_angle(a=(0, 0), b=(0, 0), round_angle=False):\n    # a, b - eyes\n    angle = math.atan2(b[1] - a[1], b[0] - a[0]) * 180 / math.pi\n    if round_angle:\n        angle = round(angle / 90) * 90\n        if angle == 360: angle = 0\n\n    return angle\n\n\ndef calculate_size_after_rotation(width, height, angle):\n    angle_rad = math.radians(angle)\n    \n    new_width = abs(width * math.cos(angle_rad)) + abs(height * math.sin(angle_rad))\n    new_height = abs(width * math.sin(angle_rad)) + abs(height * math.cos(angle_rad))\n    \n    return (int(np.ceil(new_width)), int(np.ceil(new_height))) #+ 1?\n\n\ndef image_rotate_with_pad(image, clockwise, angle):\n  if not clockwise: angle *= -1\n\n  image = image.squeeze(0)\n  image = image.permute(2, 0, 1)\n  image = TF.rotate(image, angle, fill=0, expand=True)\n  image = image.permute(1, 2, 0)\n  image = image.unsqueeze(0)\n  return image\n\n\ndef kps_rotate_2d(points, original_width, original_height, new_width, new_height, angle):\n    angle_rad = math.radians(angle)\n    \n    original_center_x = original_width / 2\n    original_center_y = original_height / 2\n    \n    new_center_x = new_width / 2\n    new_center_y = new_height / 2\n    \n    cos_angle = math.cos(angle_rad)\n    sin_angle = math.sin(angle_rad)\n    \n    rotated_points = []\n    \n    for point in points:\n        x, y = point\n        \n        translated_x = x - original_center_x\n        translated_y = y - original_center_y\n        \n        rotated_x = translated_x * cos_angle - translated_y * sin_angle\n        rotated_y = translated_x * sin_angle + translated_y * cos_angle\n        \n        final_x = int(round(rotated_x + new_center_x))\n        final_y = int(round(rotated_y + new_center_y))\n        \n        rotated_points.append([final_x, final_y])\n    \n    return rotated_points\n\n\ndef kps_rotate_3d(points, angleXDeg, angleYDeg, angleZDeg):\n    angleX = math.radians(angleXDeg)\n    angleY = math.radians(angleYDeg)\n    angleZ = math.radians(angleZDeg)\n\n    center = np.mean(points, axis=0)\n\n    translated_points = np.array([point - center for point in points])\n\n    def rotate_x(point, angle):\n        cos_theta = math.cos(angle)\n        sin_theta = math.sin(angle)\n        return [\n            int(point[0]),\n            int(point[1] * cos_theta - point[2] * sin_theta),\n            int(point[1] * sin_theta + point[2] * cos_theta)\n        ]\n\n    def rotate_y(point, angle):\n        cos_theta = math.cos(angle)\n        sin_theta = math.sin(angle)\n        return [\n            int(point[0] * cos_theta + point[2] * sin_theta),\n            int(point[1]),\n            int(-point[0] * sin_theta + point[2] * cos_theta)\n        ]\n\n    def rotate_z(point, angle):\n        cos_theta = math.cos(angle)\n        sin_theta = math.sin(angle)\n        return [\n            int(point[0] * cos_theta - point[1] * sin_theta),\n            int(point[0] * sin_theta + point[1] * cos_theta),\n            int(point[2])\n        ]\n\n    rotated_points = [\n        rotate_z(rotate_y(rotate_x(point, angleX), angleY), angleZ)\n        for point in translated_points\n    ]\n\n    return [point + center for point in rotated_points]\n\n\ndef kps3d_to_kps2d (kps):\n  if len(kps['array'][0]) == 3:\n    kps2d = {\n      'width': kps['width'],\n      'height': kps['height'],\n      'opacities': kps['opacities'][:],\n      'array': []\n    }\n\n    for x, y, _ in kps['array']:\n       kps2d['array'].append([x, y])\n\n    return kps2d\n  return kps\n\n\ndef get_bbox_from_kps (kps_data, grow_by):\n  kps = np.array(kps_data['array'])\n  minX, minY = np.min(kps, axis=0)\n  maxX, maxY = np.max(kps, axis=0)\n  width = (maxX - minX) / grow_by\n  height = ((maxY - minY) / grow_by)\n\n  return [\n    [\n      int(max(np.ceil(minX - (width)), 0)),\n      int(max(np.ceil(minY - (height)), 0))\n    ],\n    [\n      int(min(np.ceil(maxX + (width)), kps_data['width'])),\n      int(min(np.ceil(maxY + (height)), kps_data['height']))\n    ]   \n  ]"
  },
  {
    "path": "workflows/auto_rotate.json",
    "content": "{\n  \"last_node_id\": 682,\n  \"last_link_id\": 1593,\n  \"nodes\": [\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1260,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        144\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1475,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        164\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1476,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1440,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1535\n        }\n      ],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": [\n        894,\n        510\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      }\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": [\n        751,\n        510\n      ],\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      }\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        416,\n        478\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027,\n            1593\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": [\n        1438,\n        323\n      ],\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      }\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        756,\n        293\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        1240,\n        20\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        1790,\n        20\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1500,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        104\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1473,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        124\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1474,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1020,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1740,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        826,\n        -9\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1504\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        2100,\n        433\n      ],\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1552\n        }\n      ],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": [\n        1607,\n        197\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 667,\n      \"type\": \"ComposeRotated\",\n      \"pos\": [\n        2285,\n        73\n      ],\n      \"size\": {\n        \"0\": 254.40000915527344,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"original_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1533\n        },\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1538\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1535\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ComposeRotated\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 664,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        -298,\n        89\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1530\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1563\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1973,\n        43\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1544\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        206,\n        313\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1546\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1708,\n        311\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": [\n        1838,\n        149\n      ],\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1536\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 672,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        207,\n        402\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1551\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1552\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": [\n        -870,\n        -130\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491,\n            1555,\n            1564\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 655,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1960,\n        -290\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1565,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            1566\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        44\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1567\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 669,\n      \"type\": \"RotateImage\",\n      \"pos\": [\n        -76,\n        88\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1563\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1559,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1573\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        30,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 670,\n      \"type\": \"RotateImage\",\n      \"pos\": [\n        -76,\n        67\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1542\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1558,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1544,\n            1545,\n            1546\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        30,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 665,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        93,\n        88\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1573\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1572\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 668,\n      \"type\": \"RotateImage\",\n      \"pos\": [\n        2100,\n        150\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1536\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1566,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1538\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        30,\n        false\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 647,\n      \"type\": \"PreprocessImage\",\n      \"pos\": [\n        320,\n        40\n      ],\n      \"size\": {\n        \"0\": 346.7717590332031,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1545\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1572\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1564\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1567\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1504\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1562\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1473\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1474\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1475\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1476\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        150\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": [\n        -580,\n        -103\n      ],\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1576\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": [\n        -650,\n        950\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1582\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        823,\n        81\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1562\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1583\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 679,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": [\n        -36,\n        549\n      ],\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1577\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1576\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1587,\n            1590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 677,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": [\n        -642,\n        801\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1589\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1577\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        330,\n        785\n      ],\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1580\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        328,\n        930\n      ],\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1592\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1581\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": [\n        737,\n        590\n      ],\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1580\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1581\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1587\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1582\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1583\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1584\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1585\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.7000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 681,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": [\n        337,\n        574\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1588\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1589\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1590\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1591\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": [\n        1097,\n        420\n      ],\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1591\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1584\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1585\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        930143501615199,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        229,\n        784\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1015\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1592\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -600,\n        -460\n      ],\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"z19900074AMP,Luke-Skywalker-i-Yoda---Gwiezdne-wojny--Imperium-k.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -620,\n        40\n      ],\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1533,\n            1542,\n            1551,\n            1556\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1530,\n            1557\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"HanSolo.webp\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": [\n        -630,\n        430\n      ],\n      \"size\": {\n        \"0\": 295.705078125,\n        \"1\": 310\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1588\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1015\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": [\n        1450,\n        -10\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 673,\n      \"type\": \"AngleFromFace\",\n      \"pos\": [\n        -303,\n        -298\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 194\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1555\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1556\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1557\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            1558,\n            1559,\n            1565\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"AngleFromFace\"\n      },\n      \"widgets_values\": [\n        \"loseless\",\n        200,\n        200,\n        200,\n        200\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 682,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        522,\n        475.47650853223274\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1593\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": null\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1015,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1473,\n      647,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1474,\n      647,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1475,\n      647,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1476,\n      647,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1504,\n      647,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1530,\n      253,\n      1,\n      664,\n      0,\n      \"MASK\"\n    ],\n    [\n      1533,\n      253,\n      0,\n      667,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1535,\n      667,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1536,\n      396,\n      0,\n      668,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1538,\n      668,\n      0,\n      667,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1542,\n      253,\n      0,\n      670,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1544,\n      670,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1545,\n      670,\n      0,\n      647,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1546,\n      670,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1551,\n      253,\n      0,\n      672,\n      0,\n      \"*\"\n    ],\n    [\n      1552,\n      672,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1555,\n      650,\n      0,\n      673,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1556,\n      253,\n      0,\n      673,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1557,\n      253,\n      1,\n      673,\n      2,\n      \"MASK\"\n    ],\n    [\n      1558,\n      673,\n      0,\n      670,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1559,\n      673,\n      0,\n      669,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1562,\n      647,\n      2,\n      481,\n      0,\n      \"*\"\n    ],\n    [\n      1563,\n      664,\n      0,\n      669,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1564,\n      650,\n      0,\n      647,\n      2,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1565,\n      673,\n      0,\n      655,\n      0,\n      \"*\"\n    ],\n    [\n      1566,\n      655,\n      0,\n      668,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1567,\n      647,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1572,\n      665,\n      0,\n      647,\n      1,\n      \"MASK\"\n    ],\n    [\n      1573,\n      669,\n      0,\n      665,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1576,\n      642,\n      0,\n      679,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1577,\n      677,\n      1,\n      679,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1580,\n      252,\n      0,\n      680,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1581,\n      287,\n      0,\n      680,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1582,\n      636,\n      0,\n      680,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1583,\n      481,\n      0,\n      680,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1584,\n      680,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1585,\n      680,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1587,\n      679,\n      0,\n      680,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1588,\n      241,\n      0,\n      681,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1589,\n      677,\n      0,\n      681,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1590,\n      679,\n      0,\n      681,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1591,\n      681,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1592,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1593,\n      474,\n      0,\n      682,\n      0,\n      \"*\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.8390545288824507,\n      \"offset\": [\n        556.6002572542378,\n        -306.22141924192647\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/draw_kps.json",
    "content": "{\n  \"last_node_id\": 658,\n  \"last_link_id\": 1520,\n  \"nodes\": [\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1260,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1201,\n        \"1\": 144\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1475,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1201,\n        \"1\": 164\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1476,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1440,\n        \"1\": 430\n      },\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1418\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 2100,\n        \"1\": 430\n      },\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1281\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 894,\n        \"1\": 510\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 751,\n        \"1\": 510\n      },\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 206,\n        \"1\": 313\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1415\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 416,\n        \"1\": 478\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1438,\n        \"1\": 323\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 1603,\n        \"1\": 186\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 1840,\n        \"1\": 149\n      },\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1418\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1708,\n        \"1\": 311\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 756,\n        \"1\": 293\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": {\n        \"0\": 1240,\n        \"1\": 20\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": {\n        \"0\": 1790,\n        \"1\": 20\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1500,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1967,\n        \"1\": 51\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1260\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1281\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1118,\n        \"1\": 104\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1473,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1118,\n        \"1\": 124\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1474,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1020,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1740,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1148,\n        \"1\": 45\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1481\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 802,\n        \"1\": 62\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1470\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -620,\n        \"1\": -130\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -310,\n        \"1\": -100\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1498\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 652,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -377,\n        \"1\": 805\n      },\n      \"size\": {\n        \"0\": 291.64471435546875,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1495\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1496\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 330,\n        \"1\": 785\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1499\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 328,\n        \"1\": 930\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1508\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1500\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 653,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": 100,\n        \"1\": 442\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1496\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1498\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1497,\n            1501\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -395,\n        \"1\": 949\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1502\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 922,\n        \"1\": -173\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1519\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1503\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 654,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 724,\n        \"1\": 563\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1499\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1500\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1501\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1502\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1503\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1505\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1506\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.7000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 229,\n        \"1\": 784\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1507\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1508\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 651,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": 328,\n        \"1\": 564\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1493\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1495\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1497\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1494\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": {\n        \"0\": 1450,\n        \"1\": -10\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -339,\n        \"1\": -467\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 1097,\n        \"1\": 420\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1494\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1505\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1506\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        262169733824826,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 647,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 316,\n        \"1\": 43\n      },\n      \"size\": {\n        \"0\": 267.10882568359375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1467\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1468\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1481\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1470\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1473,\n            1511\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1474,\n            1512\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1475,\n            1513\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1476,\n            1514\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1509\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1510\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        100\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -376,\n        \"1\": 38\n      },\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1260,\n            1415,\n            1467,\n            1516\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1468\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"clipspace/clipspace-mask-10749683.900000036.png [input]\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 657,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 418,\n        \"1\": -481\n      },\n      \"size\": [\n        315,\n        130\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1515\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1511,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1512,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1513,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1514,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1517\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 658,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 591,\n        \"1\": -482\n      },\n      \"size\": [\n        315,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1517\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1509,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1510,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1518\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 656,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 720,\n        \"1\": -481\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1518\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1519\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -379,\n        \"1\": 430\n      },\n      \"size\": {\n        \"0\": 295.705078125,\n        \"1\": 310\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1493\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1507\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 655,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": 54,\n        \"1\": -510\n      },\n      \"size\": [\n        267.81456321367295,\n        428.21230167557974\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": 1516,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1515\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1200,\n        800,\n        {\n          \"array\": [\n            [\n              394.6050096339114,\n              255.1059730250482\n            ],\n            [\n              478.61271676300584,\n              252.02312138728325\n            ],\n            [\n              432.86908077994457,\n              301.9498607242341\n            ],\n            [\n              396.14643545279387,\n              345.27938342967246\n            ],\n            [\n              467.82273603082854,\n              347.59152215799617\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1200,\n          \"height\": 800,\n          \"bbox\": [\n            [\n              367,\n              221\n            ],\n            [\n              507,\n              380\n            ]\n          ]\n        },\n        -2.101654327671302,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1260,\n      253,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1281,\n      579,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1415,\n      253,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1418,\n      396,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1467,\n      253,\n      0,\n      647,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1468,\n      253,\n      1,\n      647,\n      1,\n      \"MASK\"\n    ],\n    [\n      1470,\n      647,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1473,\n      647,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1474,\n      647,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1475,\n      647,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1476,\n      647,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1481,\n      647,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1493,\n      241,\n      0,\n      651,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1494,\n      651,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1495,\n      652,\n      0,\n      651,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1496,\n      652,\n      1,\n      653,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1497,\n      653,\n      0,\n      651,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1498,\n      642,\n      0,\n      653,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1499,\n      252,\n      0,\n      654,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1500,\n      287,\n      0,\n      654,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1501,\n      653,\n      0,\n      654,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1502,\n      636,\n      0,\n      654,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1503,\n      481,\n      0,\n      654,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1505,\n      654,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1506,\n      654,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1507,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1508,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1509,\n      647,\n      7,\n      658,\n      1,\n      \"INT\"\n    ],\n    [\n      1510,\n      647,\n      8,\n      658,\n      2,\n      \"INT\"\n    ],\n    [\n      1511,\n      647,\n      3,\n      657,\n      1,\n      \"INT\"\n    ],\n    [\n      1512,\n      647,\n      4,\n      657,\n      2,\n      \"INT\"\n    ],\n    [\n      1513,\n      647,\n      5,\n      657,\n      3,\n      \"INT\"\n    ],\n    [\n      1514,\n      647,\n      6,\n      657,\n      4,\n      \"INT\"\n    ],\n    [\n      1515,\n      655,\n      0,\n      657,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1516,\n      253,\n      0,\n      655,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1517,\n      657,\n      0,\n      658,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1518,\n      658,\n      0,\n      656,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1519,\n      656,\n      0,\n      481,\n      0,\n      \"*\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.8140274938684812,\n      \"offset\": [\n        197.468087005649,\n        435.0052219028575\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/draw_kps_rotate.json",
    "content": "{\n  \"last_node_id\": 681,\n  \"last_link_id\": 1581,\n  \"nodes\": [\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1260,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1201,\n        \"1\": 144\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1475,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1201,\n        \"1\": 164\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1476,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1440,\n        \"1\": 430\n      },\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 57,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1535\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 894,\n        \"1\": 510\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 751,\n        \"1\": 510\n      },\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 416,\n        \"1\": 478\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1438,\n        \"1\": 323\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 756,\n        \"1\": 293\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": {\n        \"0\": 1240,\n        \"1\": 20\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": {\n        \"0\": 1790,\n        \"1\": 20\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1500,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1118,\n        \"1\": 104\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1473,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1118,\n        \"1\": 124\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1474,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1020,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1740,\n        \"1\": -340\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -870,\n        \"1\": -130\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 826,\n        \"1\": -9\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1504\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 648,\n      \"type\": \"ImageCrop\",\n      \"pos\": {\n        \"0\": 638,\n        \"1\": -145\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1549\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1484,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1485,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1482,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1483,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1480\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCrop\"\n      },\n      \"widgets_values\": [\n        512,\n        512,\n        0,\n        0\n      ]\n    },\n    {\n      \"id\": 655,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1979,\n        \"1\": -377\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1503,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            1537\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 2100,\n        \"1\": 433\n      },\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1552\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 1607,\n        \"1\": 197\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 667,\n      \"type\": \"ComposeRotated\",\n      \"pos\": {\n        \"0\": 2285,\n        \"1\": 73\n      },\n      \"size\": {\n        \"0\": 254.40000915527344,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 56,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"original_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1533\n        },\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1538\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1535\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ComposeRotated\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1973,\n        \"1\": 43\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1544\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 668,\n      \"type\": \"RotateImage\",\n      \"pos\": {\n        \"0\": 2099,\n        \"1\": 150\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 55,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1536\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1537,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1538\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        0,\n        false\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 206,\n        \"1\": 313\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1546\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1708,\n        \"1\": 311\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 1838,\n        \"1\": 149\n      },\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1536\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1122,\n        \"1\": 42\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1481\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 672,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 207,\n        \"1\": 402\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1551\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1552\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 673,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": 330,\n        \"1\": 596\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1555\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1556\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1559\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1554\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 674,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -651,\n        \"1\": 808\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1556\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1557\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ]\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -572,\n        \"1\": -78\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -650,\n        \"1\": 950\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1561\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 675,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -87,\n        \"1\": 335\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1557\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1559,\n            1560\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 330,\n        \"1\": 785\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1562\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 328,\n        \"1\": 930\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1568\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1563\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -600,\n        \"1\": -460\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 229,\n        \"1\": 784\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1015\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1568\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": {\n        \"0\": 1450,\n        \"1\": -10\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 676,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 708,\n        \"1\": 601\n      },\n      \"size\": {\n        \"0\": 357.776611328125,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1562\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1563\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1560\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1561\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1567\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1565\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1566\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.7000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 653,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -93,\n        \"1\": -364\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"FLOAT\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            1503,\n            1540,\n            1543,\n            1548,\n            1569\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"title\": \"ANGLE\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        0,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 647,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 315,\n        \"1\": 39\n      },\n      \"size\": {\n        \"0\": 267.10882568359375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1545\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1531\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1481\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1504\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1473,\n            1482,\n            1570\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1474,\n            1483,\n            1571\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1475,\n            1484,\n            1572\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1476,\n            1485,\n            1573\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1486,\n            1575\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1487,\n            1576\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        100\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 649,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 775,\n        \"1\": -144\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1480\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1486,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1487,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 919,\n        \"1\": -172\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1579\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1567\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -620,\n        \"1\": 40\n      },\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1533,\n            1542,\n            1551,\n            1580\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1530\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"clipspace/clipspace-mask-52944009.png [input]\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 671,\n      \"type\": \"RotateImage\",\n      \"pos\": {\n        \"0\": 442,\n        \"1\": -338\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": null\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1548,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1549\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        0,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 664,\n      \"type\": \"MaskToImage\",\n      \"pos\": {\n        \"0\": -298,\n        \"1\": 89\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1530\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1539\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 669,\n      \"type\": \"RotateImage\",\n      \"pos\": {\n        \"0\": -76,\n        \"1\": 88\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1539\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1540,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1541\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        0,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 670,\n      \"type\": \"RotateImage\",\n      \"pos\": {\n        \"0\": -76,\n        \"1\": 70\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1542\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1543,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1544,\n            1545,\n            1546\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        0,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 665,\n      \"type\": \"ImageToMask\",\n      \"pos\": {\n        \"0\": 76,\n        \"1\": 89\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1541\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1531\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -629,\n        \"1\": 431\n      },\n      \"size\": {\n        \"0\": 295.705078125,\n        \"1\": 310\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1555\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1015\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 1097,\n        \"1\": 420\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1554\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1565\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1566\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        930143501615199,\n        \"fixed\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 681,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": 192,\n        \"1\": -528\n      },\n      \"size\": [\n        210,\n        368.356062820341\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": 1580,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1581\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1200,\n        800,\n        {\n          \"array\": [\n            [\n              631.7548746518106,\n              261.8384401114206\n            ],\n            [\n              697.4930362116992,\n              275.2089136490251\n            ],\n            [\n              652.3676880222847,\n              293.03621169916374\n            ],\n            [\n              622.841225626741,\n              340.94707520891365\n            ],\n            [\n              689.6935933147632,\n              340.94707520891365\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1200,\n          \"height\": 800,\n          \"bbox\": [\n            [\n              598,\n              236\n            ],\n            [\n              723,\n              368\n            ]\n          ]\n        },\n        11.496563017585805,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 677,\n      \"type\": \"KpsRotate\",\n      \"pos\": {\n        \"0\": 424,\n        \"1\": -499\n      },\n      \"size\": [\n        315,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1581\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 1569,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1574\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsRotate\"\n      },\n      \"widgets_values\": [\n        0,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 678,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 597,\n        \"1\": -501\n      },\n      \"size\": [\n        315,\n        130\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1574\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1570,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1571,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1572,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1573,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1577\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 679,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 749,\n        \"1\": -503\n      },\n      \"size\": [\n        315,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1577\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1575,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1578\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 876,\n        \"1\": -503\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1578\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1579\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1015,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1473,\n      647,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1474,\n      647,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1475,\n      647,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1476,\n      647,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1480,\n      648,\n      0,\n      649,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1481,\n      647,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1482,\n      647,\n      3,\n      648,\n      3,\n      \"INT\"\n    ],\n    [\n      1483,\n      647,\n      4,\n      648,\n      4,\n      \"INT\"\n    ],\n    [\n      1484,\n      647,\n      5,\n      648,\n      1,\n      \"INT\"\n    ],\n    [\n      1485,\n      647,\n      6,\n      648,\n      2,\n      \"INT\"\n    ],\n    [\n      1486,\n      647,\n      7,\n      649,\n      1,\n      \"INT\"\n    ],\n    [\n      1487,\n      647,\n      8,\n      649,\n      2,\n      \"INT\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1503,\n      653,\n      0,\n      655,\n      0,\n      \"*\"\n    ],\n    [\n      1504,\n      647,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1530,\n      253,\n      1,\n      664,\n      0,\n      \"MASK\"\n    ],\n    [\n      1531,\n      665,\n      0,\n      647,\n      1,\n      \"MASK\"\n    ],\n    [\n      1533,\n      253,\n      0,\n      667,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1535,\n      667,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1536,\n      396,\n      0,\n      668,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1537,\n      655,\n      0,\n      668,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1538,\n      668,\n      0,\n      667,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1539,\n      664,\n      0,\n      669,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1540,\n      653,\n      0,\n      669,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1541,\n      669,\n      0,\n      665,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1542,\n      253,\n      0,\n      670,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1543,\n      653,\n      0,\n      670,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1544,\n      670,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1545,\n      670,\n      0,\n      647,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1546,\n      670,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1548,\n      653,\n      0,\n      671,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1549,\n      671,\n      0,\n      648,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1551,\n      253,\n      0,\n      672,\n      0,\n      \"*\"\n    ],\n    [\n      1552,\n      672,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1554,\n      673,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1555,\n      241,\n      0,\n      673,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1556,\n      674,\n      0,\n      673,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1557,\n      674,\n      1,\n      675,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1558,\n      642,\n      0,\n      675,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1559,\n      675,\n      0,\n      673,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1560,\n      675,\n      0,\n      676,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1561,\n      636,\n      0,\n      676,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1562,\n      252,\n      0,\n      676,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1563,\n      287,\n      0,\n      676,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1565,\n      676,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1566,\n      676,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1567,\n      481,\n      0,\n      676,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1568,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1569,\n      653,\n      0,\n      677,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      1570,\n      647,\n      3,\n      678,\n      1,\n      \"INT\"\n    ],\n    [\n      1571,\n      647,\n      4,\n      678,\n      2,\n      \"INT\"\n    ],\n    [\n      1572,\n      647,\n      5,\n      678,\n      3,\n      \"INT\"\n    ],\n    [\n      1573,\n      647,\n      6,\n      678,\n      4,\n      \"INT\"\n    ],\n    [\n      1574,\n      677,\n      0,\n      678,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1575,\n      647,\n      7,\n      679,\n      1,\n      \"INT\"\n    ],\n    [\n      1576,\n      647,\n      8,\n      679,\n      2,\n      \"INT\"\n    ],\n    [\n      1577,\n      678,\n      0,\n      679,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1578,\n      679,\n      0,\n      680,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1579,\n      680,\n      0,\n      481,\n      0,\n      \"*\"\n    ],\n    [\n      1580,\n      253,\n      0,\n      681,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1581,\n      681,\n      0,\n      677,\n      0,\n      \"KPS_DATA\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.41772481694160596,\n      \"offset\": [\n        1327.0455528255227,\n        1040.380946090041\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/inpaint.json",
    "content": "{\n  \"last_node_id\": 815,\n  \"last_link_id\": 1936,\n  \"nodes\": [\n    {\n      \"id\": 798,\n      \"type\": \"VAEEncode\",\n      \"pos\": [\n        116,\n        -36\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1902\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1903\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      }\n    },\n    {\n      \"id\": 684,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -581,\n        -341\n      ],\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1900,\n            1931\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1901\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"clipspace/clipspace-mask-58760397.399999976.png [input]\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 800,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        103,\n        105\n      ],\n      \"size\": {\n        \"0\": 314.2625732421875,\n        \"1\": 163.22386169433594\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1910\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1907\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man wearing a backpack\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        97,\n        317\n      ],\n      \"size\": {\n        \"0\": 320.8741760253906,\n        \"1\": 127.3620376586914\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1922\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 804,\n      \"type\": \"VAEDecode\",\n      \"pos\": [\n        933,\n        165\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1911\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1912\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1920\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      }\n    },\n    {\n      \"id\": 803,\n      \"type\": \"ImageScale\",\n      \"pos\": [\n        872,\n        -198\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1920\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1914,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1915,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1923\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 799,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": [\n        328,\n        -34\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1903\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1930\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1906\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      }\n    },\n    {\n      \"id\": 810,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        111,\n        -406\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1927\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1928\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 814,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        590,\n        -330\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1931\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1934,\n            1935\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 808,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1081,\n        -12\n      ],\n      \"size\": {\n        \"0\": 432.82342529296875,\n        \"1\": 486.14447021484375\n      },\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1921\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 813,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1530,\n        -11\n      ],\n      \"size\": {\n        \"0\": 432.82342529296875,\n        \"1\": 486.14447021484375\n      },\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1936\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 806,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": [\n        839,\n        -244\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1934\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1923\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1916,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1917,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1921\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 811,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        682,\n        -406\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1929\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1930\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 815,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1407,\n        -332\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1935\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1936\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 797,\n      \"type\": \"PreprocessImage\",\n      \"pos\": [\n        -290,\n        -340\n      ],\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1901\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1902\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1927\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1916\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1917\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1914\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1915\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        150\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": [\n        -272,\n        86\n      ],\n      \"size\": {\n        \"0\": 295.705078125,\n        \"1\": 310\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1909\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1910,\n            1922\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1905,\n            1912\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"KSampler\",\n      \"pos\": [\n        580,\n        -13\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 474\n      },\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1909\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1907\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1908\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1906\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        1011860721881702,\n        \"randomize\",\n        20,\n        3,\n        \"dpm_adaptive\",\n        \"normal\",\n        0.75\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 812,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        394,\n        -730\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1926\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 809,\n      \"type\": \"ImageBlur\",\n      \"pos\": [\n        339,\n        -434\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1928\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1926,\n            1929\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    }\n  ],\n  \"links\": [\n    [\n      1900,\n      684,\n      0,\n      797,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1901,\n      684,\n      1,\n      797,\n      1,\n      \"MASK\"\n    ],\n    [\n      1902,\n      797,\n      0,\n      798,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1903,\n      798,\n      0,\n      799,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1905,\n      241,\n      2,\n      798,\n      1,\n      \"VAE\"\n    ],\n    [\n      1906,\n      799,\n      0,\n      802,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1907,\n      800,\n      0,\n      802,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1908,\n      801,\n      0,\n      802,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1909,\n      241,\n      0,\n      802,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1910,\n      241,\n      1,\n      800,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1911,\n      802,\n      0,\n      804,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1912,\n      241,\n      2,\n      804,\n      1,\n      \"VAE\"\n    ],\n    [\n      1914,\n      797,\n      5,\n      803,\n      1,\n      \"INT\"\n    ],\n    [\n      1915,\n      797,\n      6,\n      803,\n      2,\n      \"INT\"\n    ],\n    [\n      1916,\n      797,\n      3,\n      806,\n      3,\n      \"INT\"\n    ],\n    [\n      1917,\n      797,\n      4,\n      806,\n      4,\n      \"INT\"\n    ],\n    [\n      1920,\n      804,\n      0,\n      803,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1921,\n      806,\n      0,\n      808,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1922,\n      241,\n      1,\n      801,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1923,\n      803,\n      0,\n      806,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1926,\n      809,\n      0,\n      812,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1927,\n      797,\n      1,\n      810,\n      0,\n      \"MASK\"\n    ],\n    [\n      1928,\n      810,\n      0,\n      809,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1929,\n      809,\n      0,\n      811,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1930,\n      811,\n      0,\n      799,\n      1,\n      \"MASK\"\n    ],\n    [\n      1931,\n      684,\n      0,\n      814,\n      0,\n      \"*\"\n    ],\n    [\n      1934,\n      814,\n      0,\n      806,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1935,\n      814,\n      0,\n      815,\n      0,\n      \"*\"\n    ],\n    [\n      1936,\n      815,\n      0,\n      813,\n      0,\n      \"IMAGE\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.7627768444386356,\n      \"offset\": [\n        503.9079320530331,\n        618.436169808715\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/promp2image.json",
    "content": "{\n  \"last_node_id\": 803,\n  \"last_link_id\": 1917,\n  \"nodes\": [\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -259\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -549,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1897\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -181,\n        \"1\": -270\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1901\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1900\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 796,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": -85\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1898,\n            1901\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 798,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -233,\n        \"1\": -459\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1904\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1905\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 799,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1300,\n        \"1\": -108\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1906\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1907\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 800,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1412,\n        \"1\": -212\n      },\n      \"size\": {\n        \"0\": 429.5522155761719,\n        \"1\": 367.1863708496094\n      },\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1908\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1352,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1907\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 793,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": -214,\n        \"1\": -154\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1893\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1913\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 541,\n        \"1\": -310\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1917\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1882\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1881\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1913\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1896\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 150,\n        \"1\": -329\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1912\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -134\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 1002,\n        \"1\": -330\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1912\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1882\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1881\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1574\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        779827001617899,\n        \"randomize\",\n        30,\n        3,\n        \"dpm_adaptive\",\n        \"normal\",\n        1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -457\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man in the city, high quality\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 605,\n        \"1\": 72\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1574\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -550,\n        \"1\": -21\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            1914\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -548,\n        \"1\": 111\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            1915\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": -140,\n        \"1\": -729\n      },\n      \"size\": [\n        216.91129927847646,\n        316.08614490773033\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1915,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1914,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1916\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              451.9881180877503,\n              286.5507921824582\n            ],\n            [\n              560.6024111601599,\n              286.55079218245834\n            ],\n            [\n              506.29526462395495,\n              340.85793871866235\n            ],\n            [\n              451.9881180877503,\n              395.1650852548673\n            ],\n            [\n              560.6024111601594,\n              395.1650852548666\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"bbox\": [\n            [\n              416,\n              251\n            ],\n            [\n              597,\n              432\n            ]\n          ]\n        },\n        5.997162807380019e-14,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 794,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -155\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1902,\n            1904\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1906\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 803,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 171,\n        \"1\": -701\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1916\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1917\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    }\n  ],\n  \"links\": [\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1574,\n      677,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1881,\n      775,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1882,\n      775,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1893,\n      794,\n      0,\n      793,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1896,\n      774,\n      1,\n      796,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1897,\n      642,\n      0,\n      796,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1898,\n      796,\n      0,\n      793,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1900,\n      797,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1901,\n      796,\n      0,\n      797,\n      0,\n      \"*\"\n    ],\n    [\n      1902,\n      794,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1904,\n      794,\n      1,\n      798,\n      0,\n      \"*\"\n    ],\n    [\n      1905,\n      798,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1906,\n      794,\n      2,\n      799,\n      0,\n      \"*\"\n    ],\n    [\n      1907,\n      799,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      1908,\n      248,\n      0,\n      800,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1911,\n      793,\n      0,\n      801,\n      0,\n      \"*\"\n    ],\n    [\n      1912,\n      801,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1913,\n      774,\n      0,\n      793,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1914,\n      679,\n      0,\n      802,\n      2,\n      \"INT\"\n    ],\n    [\n      1915,\n      680,\n      0,\n      802,\n      1,\n      \"INT\"\n    ],\n    [\n      1916,\n      802,\n      0,\n      803,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1917,\n      803,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.74002499442588,\n      \"offset\": [\n        861.0086489828302,\n        902.2316706107554\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/promp2image_detail_pass.json",
    "content": "{\n  \"last_node_id\": 845,\n  \"last_link_id\": 2005,\n  \"nodes\": [\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -549,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1897\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -181,\n        \"1\": -270\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1901\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1900\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 798,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -233,\n        \"1\": -459\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1904\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1905\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 605,\n        \"1\": 72\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1574\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 799,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1300,\n        \"1\": -108\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1906\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1907\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 800,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1412,\n        \"1\": -212\n      },\n      \"size\": {\n        \"0\": 429.5522155761719,\n        \"1\": 367.1863708496094\n      },\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1908\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 793,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": -214,\n        \"1\": -154\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1893\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1913\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 541,\n        \"1\": -310\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2005\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1882\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1881\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1913\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1896\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 150,\n        \"1\": -329\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1912,\n            1952\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 796,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": -85\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1898,\n            1901,\n            1929\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 813,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -158,\n        \"1\": 348\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1929\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1930\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 814,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2123,\n        \"1\": 347\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1930\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1931\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 812,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1750,\n        \"1\": 260\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1932\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1925,\n            1984\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 811,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -341,\n        \"1\": 262\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1922\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1932\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 822,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -559,\n        \"1\": 413\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1948\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1949\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 823,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2362,\n        \"1\": 403\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1949\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1950,\n            1959\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 825,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2445,\n        \"1\": -316\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1952\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1953\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 829,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3256,\n        \"1\": 407\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1959\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1960\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 806,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 2862,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1951\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1961\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1954\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 821,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 2653,\n        \"1\": -302\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1947\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1950\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1951\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 832,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3500,\n        \"1\": -660\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1966,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1968\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 833,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3499,\n        \"1\": -641\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1967,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1969\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 834,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 3896,\n        \"1\": -249\n      },\n      \"size\": {\n        \"0\": 828.2597045898438,\n        \"1\": 691.5579223632812\n      },\n      \"flags\": {},\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1970\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 807,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 2603,\n        \"1\": -171\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1927\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1928\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1931\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1976\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2000\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1955\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1956\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 828,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 3476,\n        \"1\": -250\n      },\n      \"size\": {\n        \"0\": 402.61297607421875,\n        \"1\": 261.80877685546875\n      },\n      \"flags\": {},\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1958\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 809,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 1886,\n        \"1\": -168\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1925\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1927\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1352,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1907\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1908,\n            1934,\n            1979\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 837,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2148,\n        \"1\": 525\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1981\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1976\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 836,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -470,\n        \"1\": 525\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1974\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1981\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 824,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 3132,\n        \"1\": -312\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 474\n      },\n      \"flags\": {},\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1953\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1955\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1956\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1954\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1957\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        93165221564175,\n        \"randomize\",\n        20,\n        3,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 831,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 3788,\n        \"1\": -626\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1983\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1982\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1968,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1969,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1970\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -984,\n        \"1\": -248\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802,\n            1974\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -134\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 803,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2489,\n        \"1\": -730\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1943\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1947\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 805,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2689,\n        \"1\": -709\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1918\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1961\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 830,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 3664,\n        \"1\": -568\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1962\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1963,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1964,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1982\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 827,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 3471,\n        \"1\": -311\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1957\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1960\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1958,\n            1962\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 838,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3370,\n        \"1\": -427\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1979\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1983\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 810,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 1883,\n        \"1\": -4\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1984\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1928\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -457\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man in the city, high quality\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -548,\n        \"1\": 111\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            1985\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -550,\n        \"1\": -21\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            1986\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 1862,\n        \"1\": -737\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1934\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 2003\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1943\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1918\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1966,\n            1989\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1967,\n            1990\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1963,\n            1991\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1964,\n            1992\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1996\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1997\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 841,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 2234,\n        \"1\": -405\n      },\n      \"size\": [\n        315,\n        130\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1995\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1989,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1990,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1991,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1992,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1998\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 835,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1495,\n        \"1\": -437\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1994\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1995\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 842,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 2379,\n        \"1\": -405\n      },\n      \"size\": [\n        315,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1998\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1996,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1997,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1999\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 843,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 2505,\n        \"1\": -405\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1999\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2000\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 794,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -155\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1902,\n            1904,\n            1922\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1906,\n            1948\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 844,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 485,\n        \"1\": -727\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2002\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            2003\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        3\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 845,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 178,\n        \"1\": -599\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2004\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2005\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 1002,\n        \"1\": -330\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1912\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1882\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1881\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1574\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        1070699419372419,\n        \"randomize\",\n        30,\n        3,\n        \"euler_ancestral\",\n        \"normal\",\n        1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 839,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": -185,\n        \"1\": -734\n      },\n      \"size\": [\n        236.70093846010064,\n        364.1435968095893\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1985,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1986,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1994,\n            2002,\n            2004\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              472.04601395803036,\n              196.62261562933992\n            ],\n            [\n              518.1434010837521,\n              196.62261562934006\n            ],\n            [\n              495.09470752089123,\n              219.6713091922009\n            ],\n            [\n              472.0460139580306,\n              242.7200027550619\n            ],\n            [\n              518.1434010837517,\n              242.72000275506167\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"bbox\": [\n            [\n              457,\n              182\n            ],\n            [\n              534,\n              259\n            ]\n          ]\n        },\n        1.7663083511306758e-13,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    }\n  ],\n  \"links\": [\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1574,\n      677,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1881,\n      775,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1882,\n      775,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1893,\n      794,\n      0,\n      793,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1896,\n      774,\n      1,\n      796,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1897,\n      642,\n      0,\n      796,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1898,\n      796,\n      0,\n      793,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1900,\n      797,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1901,\n      796,\n      0,\n      797,\n      0,\n      \"*\"\n    ],\n    [\n      1902,\n      794,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1904,\n      794,\n      1,\n      798,\n      0,\n      \"*\"\n    ],\n    [\n      1905,\n      798,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1906,\n      794,\n      2,\n      799,\n      0,\n      \"*\"\n    ],\n    [\n      1907,\n      799,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      1908,\n      248,\n      0,\n      800,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1911,\n      793,\n      0,\n      801,\n      0,\n      \"*\"\n    ],\n    [\n      1912,\n      801,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1913,\n      774,\n      0,\n      793,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1918,\n      802,\n      1,\n      805,\n      0,\n      \"*\"\n    ],\n    [\n      1922,\n      794,\n      1,\n      811,\n      0,\n      \"*\"\n    ],\n    [\n      1925,\n      812,\n      0,\n      809,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1927,\n      809,\n      0,\n      807,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1928,\n      810,\n      0,\n      807,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1929,\n      796,\n      0,\n      813,\n      0,\n      \"*\"\n    ],\n    [\n      1930,\n      813,\n      0,\n      814,\n      0,\n      \"*\"\n    ],\n    [\n      1931,\n      814,\n      0,\n      807,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1932,\n      811,\n      0,\n      812,\n      0,\n      \"*\"\n    ],\n    [\n      1934,\n      248,\n      0,\n      802,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1943,\n      802,\n      0,\n      803,\n      0,\n      \"*\"\n    ],\n    [\n      1947,\n      803,\n      0,\n      821,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1948,\n      794,\n      2,\n      822,\n      0,\n      \"*\"\n    ],\n    [\n      1949,\n      822,\n      0,\n      823,\n      0,\n      \"*\"\n    ],\n    [\n      1950,\n      823,\n      0,\n      821,\n      1,\n      \"VAE\"\n    ],\n    [\n      1951,\n      821,\n      0,\n      806,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1952,\n      801,\n      0,\n      825,\n      0,\n      \"*\"\n    ],\n    [\n      1953,\n      825,\n      0,\n      824,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1954,\n      806,\n      0,\n      824,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1955,\n      807,\n      0,\n      824,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1956,\n      807,\n      1,\n      824,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1957,\n      824,\n      0,\n      827,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1958,\n      827,\n      0,\n      828,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1959,\n      823,\n      0,\n      829,\n      0,\n      \"*\"\n    ],\n    [\n      1960,\n      829,\n      0,\n      827,\n      1,\n      \"VAE\"\n    ],\n    [\n      1961,\n      805,\n      0,\n      806,\n      1,\n      \"MASK\"\n    ],\n    [\n      1962,\n      827,\n      0,\n      830,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1963,\n      802,\n      5,\n      830,\n      1,\n      \"INT\"\n    ],\n    [\n      1964,\n      802,\n      6,\n      830,\n      2,\n      \"INT\"\n    ],\n    [\n      1966,\n      802,\n      3,\n      832,\n      0,\n      \"*\"\n    ],\n    [\n      1967,\n      802,\n      4,\n      833,\n      0,\n      \"*\"\n    ],\n    [\n      1968,\n      832,\n      0,\n      831,\n      3,\n      \"INT\"\n    ],\n    [\n      1969,\n      833,\n      0,\n      831,\n      4,\n      \"INT\"\n    ],\n    [\n      1970,\n      831,\n      0,\n      834,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1974,\n      636,\n      0,\n      836,\n      0,\n      \"*\"\n    ],\n    [\n      1976,\n      837,\n      0,\n      807,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1979,\n      248,\n      0,\n      838,\n      0,\n      \"*\"\n    ],\n    [\n      1981,\n      836,\n      0,\n      837,\n      0,\n      \"*\"\n    ],\n    [\n      1982,\n      830,\n      0,\n      831,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1983,\n      838,\n      0,\n      831,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1984,\n      812,\n      0,\n      810,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1985,\n      680,\n      0,\n      839,\n      1,\n      \"INT\"\n    ],\n    [\n      1986,\n      679,\n      0,\n      839,\n      2,\n      \"INT\"\n    ],\n    [\n      1989,\n      802,\n      3,\n      841,\n      1,\n      \"INT\"\n    ],\n    [\n      1990,\n      802,\n      4,\n      841,\n      2,\n      \"INT\"\n    ],\n    [\n      1991,\n      802,\n      5,\n      841,\n      3,\n      \"INT\"\n    ],\n    [\n      1992,\n      802,\n      6,\n      841,\n      4,\n      \"INT\"\n    ],\n    [\n      1994,\n      839,\n      0,\n      835,\n      0,\n      \"*\"\n    ],\n    [\n      1995,\n      835,\n      0,\n      841,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1996,\n      802,\n      7,\n      842,\n      1,\n      \"INT\"\n    ],\n    [\n      1997,\n      802,\n      8,\n      842,\n      2,\n      \"INT\"\n    ],\n    [\n      1998,\n      841,\n      0,\n      842,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1999,\n      842,\n      0,\n      843,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2000,\n      843,\n      0,\n      807,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2002,\n      839,\n      0,\n      844,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2003,\n      844,\n      0,\n      802,\n      1,\n      \"MASK\"\n    ],\n    [\n      2004,\n      839,\n      0,\n      845,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2005,\n      845,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.2853116706110234,\n      \"offset\": [\n        2023.7196990378452,\n        1390.7439411220903\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/prompts2img_2faces_enhancement.json",
    "content": "{\n  \"last_node_id\": 806,\n  \"last_link_id\": 1916,\n  \"nodes\": [\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -556,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1822\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 685,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -556,\n        \"1\": 29\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1610\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1591\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1824\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1821,\n            1823\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 778,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 307,\n        \"1\": -317\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1814\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1815\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1825\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1816\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1899\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1818\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1819\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 690,\n      \"type\": \"ConditioningCombine\",\n      \"pos\": {\n        \"0\": 821,\n        \"1\": -535\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"conditioning_1\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1804\n        },\n        {\n          \"name\": \"conditioning_2\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1818\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1638\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ConditioningCombine\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 691,\n      \"type\": \"ConditioningCombine\",\n      \"pos\": {\n        \"0\": 830,\n        \"1\": -462\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"conditioning_1\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1805\n        },\n        {\n          \"name\": \"conditioning_2\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1819\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1640\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ConditioningCombine\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 696,\n      \"type\": \"ConditioningConcat\",\n      \"pos\": {\n        \"0\": 1088,\n        \"1\": -586\n      },\n      \"size\": {\n        \"0\": 380.4000244140625,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"conditioning_to\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1638\n        },\n        {\n          \"name\": \"conditioning_from\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1637\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1632\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ConditioningConcat\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 697,\n      \"type\": \"ConditioningConcat\",\n      \"pos\": {\n        \"0\": 1095,\n        \"1\": -412\n      },\n      \"size\": {\n        \"0\": 380.4000244140625,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"conditioning_to\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1640\n        },\n        {\n          \"name\": \"conditioning_from\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1639\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1636\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ConditioningConcat\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 714,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 983,\n        \"1\": 422\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1797\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1665\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 691,\n        \"1\": 237\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1574\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 715,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1256,\n        \"1\": 423\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1665\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1667,\n            1683\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 779,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -333,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1821\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1822\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1826,\n            1849\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 700,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 1690,\n        \"1\": 421\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 57,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1667\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1847\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1848\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1695\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1655\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        391082448969380,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1867,\n        \"1\": -537\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1621\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1647,\n            1778\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 786,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -343,\n        \"1\": 1045\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1851\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1852,\n            1853\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 735,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 228,\n        \"1\": 1046\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1852\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1845\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 726,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3181,\n        \"1\": 430\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1683\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1684\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 788,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -3,\n        \"1\": 981\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1855\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1856,\n            1857,\n            1858\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 744,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 472,\n        \"1\": 1045\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1853\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1868\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 784,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 1181,\n        \"1\": 982\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 56,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1843\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1844\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1850\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1845\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1895\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1847\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1848\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 785,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 199,\n        \"1\": 1009\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1849\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1850\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 780,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -341,\n        \"1\": 27\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1823\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1824\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1825,\n            1865\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 791,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1899,\n        \"1\": 1009\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1865\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1872\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 717,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 3447,\n        \"1\": 431\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 68,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1684\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1870\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1871\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1693\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1677\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        907024220118395,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 722,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 3909,\n        \"1\": 479\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 69,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1677\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1875\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1699\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 710,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 2062,\n        \"1\": 487\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 58,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1655\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1874\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1698\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 704,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 1186,\n        \"1\": 559\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1694\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1646\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1695\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -971,\n        \"1\": -259\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802,\n            1816,\n            1851\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 718,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 3079,\n        \"1\": 554\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 64,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1692\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1669\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1693\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 719,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 2760,\n        \"1\": 556\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 62,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1670\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1686\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1692\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 823,\n        \"1\": 463\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1621,\n            1874,\n            1875,\n            1876,\n            1877\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 707,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 992,\n        \"1\": 559\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1648\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1876\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1694\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 727,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2558,\n        \"1\": 456\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1877\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1686\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 792,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 3021,\n        \"1\": 960\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 67,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1866\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1867\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1872\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1868\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1870\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1871\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 789,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1612,\n        \"1\": 982\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1858\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1859,\n            1878\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 709,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 2090,\n        \"1\": 1480\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 59,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1698\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1652,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1700,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1777\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 708,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 2340,\n        \"1\": 1480\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 60,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1778\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1777\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1650,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1651,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1688,\n            1779\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 721,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 3730,\n        \"1\": 1480\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 70,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1699\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1675,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1697,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1780\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 720,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 3970,\n        \"1\": 1480\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 71,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1779\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1780\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1673,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1674,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1701\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 783,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 421,\n        \"1\": 1038\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1857\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1844\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 732,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 425,\n        \"1\": 1008\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1856\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1843\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491,\n            1610\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 738,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 2164,\n        \"1\": 994\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1859\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1866\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 787,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 2161,\n        \"1\": 1021\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1878\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1867\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 117,\n        \"1\": -729\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1831\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 113,\n        \"1\": -676\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1830\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 773,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 117,\n        \"1\": -225\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1834\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1815\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 772,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 122,\n        \"1\": -281\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1832\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1814\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 693,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 715,\n        \"1\": -370\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1862\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1639\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed,\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 692,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 711,\n        \"1\": -836\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1863\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1637\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"men standing on the moon\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 684,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -581,\n        \"1\": -341\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1591\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"z19900074AMP,Luke-Skywalker-i-Yoda---Gwiezdne-wojny--Imperium-k.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 729,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1901,\n        \"1\": -858\n      },\n      \"size\": {\n        \"0\": 1278.0570068359375,\n        \"1\": 1057.5782470703125\n      },\n      \"flags\": {},\n      \"order\": 72,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1701\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -583,\n        \"1\": 287\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            1880,\n            1882\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -589,\n        \"1\": 130\n      },\n      \"size\": [\n        210,\n        82\n      ],\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            1881,\n            1883\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 799,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 990,\n        \"1\": 926\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 55,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1894\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1895\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 824,\n        \"1\": 925\n      },\n      \"size\": [\n        315,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1891\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1892,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1893,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1894\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 796,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 519,\n        \"1\": 925\n      },\n      \"size\": [\n        315,\n        130\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1887,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1888,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1889,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1890,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1891\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 126,\n        \"1\": -356\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1899\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 698,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 559,\n        \"1\": 576\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1647\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1648\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1646\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1650,\n            1887\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1651,\n            1888\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1652,\n            1889\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1700,\n            1890\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1892\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 716,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 2276,\n        \"1\": 573\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 61,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1688\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1901\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1670\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1669\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1673,\n            1903\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1674,\n            1904\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1675,\n            1905\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1697,\n            1906\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1907\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 804,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 2631,\n        \"1\": 936\n      },\n      \"size\": [\n        315,\n        82\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 65,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1909\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1907,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1908,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1910\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 805,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 2790,\n        \"1\": 937\n      },\n      \"size\": [\n        220.2954731503596,\n        26\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 66,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1910\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 795,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 113,\n        \"1\": -796\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1884\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1885\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -615,\n        \"1\": 415\n      },\n      \"size\": {\n        \"0\": 295.705078125,\n        \"1\": 310\n      },\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1797,\n            1827\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1830,\n            1831,\n            1832,\n            1834,\n            1855,\n            1862,\n            1863\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 803,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 2379,\n        \"1\": 937\n      },\n      \"size\": [\n        315,\n        130\n      ],\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 63,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1915\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1903,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1904,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1905,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1906,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1909\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 806,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1605,\n        \"1\": 909\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1916\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1915\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 793,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": -149,\n        \"1\": -800\n      },\n      \"size\": [\n        210,\n        358\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1880,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1881,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1884,\n            1896,\n            1897\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              185.59580655300232,\n              187.02199039701333\n            ],\n            [\n              244.0006073599641,\n              191.19998211359663\n            ],\n            [\n              221.05849582172698,\n              222.48467966573813\n            ],\n            [\n              189.05049611109706,\n              250.2249460816175\n            ],\n            [\n              247.2144826215563,\n              251.77938488154697\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"bbox\": [\n            [\n              166,\n              166\n            ],\n            [\n              268,\n              274\n            ]\n          ]\n        },\n        4.0916878761297655,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 794,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": -153,\n        \"1\": -366\n      },\n      \"size\": [\n        210,\n        358\n      ],\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1882,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1883,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1898,\n            1902,\n            1916\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              724.2338149076375,\n              238.3685664974333\n            ],\n            [\n              795.1653606539041,\n              237.69913560023844\n            ],\n            [\n              751.5988857938721,\n              276.67966573816165\n            ],\n            [\n              732.1322190965569,\n              307.41650789181705\n            ],\n            [\n              793.289723026619,\n              310.48304727822654\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"bbox\": [\n            [\n              701,\n              214\n            ],\n            [\n              819,\n              335\n            ]\n          ]\n        },\n        -0.5407245247846199,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 302,\n        \"1\": -742\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1826\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1885\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1804\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1805\n          ],\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 800,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 144,\n        \"1\": 592\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1900\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        3\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 2005,\n        \"1\": 591\n      },\n      \"size\": [\n        245.22620604999838,\n        58\n      ],\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1901\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        4\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 1409,\n        \"1\": -564\n      },\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1827\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1632\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1636\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1574\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        717599660603842,\n        \"randomize\",\n        30,\n        3,\n        \"euler_ancestral\",\n        \"normal\",\n        1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    }\n  ],\n  \"links\": [\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1574,\n      677,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1591,\n      684,\n      0,\n      685,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1610,\n      650,\n      0,\n      685,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1621,\n      474,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      1632,\n      696,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1636,\n      697,\n      0,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1637,\n      692,\n      0,\n      696,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1638,\n      690,\n      0,\n      696,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1639,\n      693,\n      0,\n      697,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1640,\n      691,\n      0,\n      697,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1646,\n      698,\n      1,\n      704,\n      1,\n      \"MASK\"\n    ],\n    [\n      1647,\n      248,\n      0,\n      698,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1648,\n      698,\n      0,\n      707,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1650,\n      698,\n      3,\n      708,\n      3,\n      \"INT\"\n    ],\n    [\n      1651,\n      698,\n      4,\n      708,\n      4,\n      \"INT\"\n    ],\n    [\n      1652,\n      698,\n      5,\n      709,\n      1,\n      \"INT\"\n    ],\n    [\n      1655,\n      700,\n      0,\n      710,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1665,\n      714,\n      0,\n      715,\n      0,\n      \"*\"\n    ],\n    [\n      1667,\n      715,\n      0,\n      700,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1669,\n      716,\n      1,\n      718,\n      1,\n      \"MASK\"\n    ],\n    [\n      1670,\n      716,\n      0,\n      719,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1673,\n      716,\n      3,\n      720,\n      3,\n      \"INT\"\n    ],\n    [\n      1674,\n      716,\n      4,\n      720,\n      4,\n      \"INT\"\n    ],\n    [\n      1675,\n      716,\n      5,\n      721,\n      1,\n      \"INT\"\n    ],\n    [\n      1677,\n      717,\n      0,\n      722,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1683,\n      715,\n      0,\n      726,\n      0,\n      \"*\"\n    ],\n    [\n      1684,\n      726,\n      0,\n      717,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1686,\n      727,\n      0,\n      719,\n      1,\n      \"VAE\"\n    ],\n    [\n      1688,\n      708,\n      0,\n      716,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1692,\n      719,\n      0,\n      718,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1693,\n      718,\n      0,\n      717,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1694,\n      707,\n      0,\n      704,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1695,\n      704,\n      0,\n      700,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1697,\n      716,\n      6,\n      721,\n      2,\n      \"INT\"\n    ],\n    [\n      1698,\n      710,\n      0,\n      709,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1699,\n      722,\n      0,\n      721,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1700,\n      698,\n      6,\n      709,\n      2,\n      \"INT\"\n    ],\n    [\n      1701,\n      720,\n      0,\n      729,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1777,\n      709,\n      0,\n      708,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1778,\n      248,\n      0,\n      708,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1779,\n      708,\n      0,\n      720,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1780,\n      721,\n      0,\n      720,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1797,\n      241,\n      0,\n      714,\n      0,\n      \"*\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1804,\n      775,\n      0,\n      690,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1805,\n      775,\n      1,\n      691,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1814,\n      772,\n      0,\n      778,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1815,\n      773,\n      0,\n      778,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1816,\n      636,\n      0,\n      778,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1818,\n      778,\n      0,\n      690,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1819,\n      778,\n      1,\n      691,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1821,\n      774,\n      1,\n      779,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1822,\n      642,\n      0,\n      779,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1823,\n      774,\n      1,\n      780,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1824,\n      685,\n      0,\n      780,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1825,\n      780,\n      0,\n      778,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1826,\n      779,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1827,\n      241,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1830,\n      241,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1831,\n      241,\n      1,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1832,\n      241,\n      1,\n      772,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1834,\n      241,\n      1,\n      773,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1843,\n      732,\n      0,\n      784,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1844,\n      783,\n      0,\n      784,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1845,\n      735,\n      0,\n      784,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1847,\n      784,\n      0,\n      700,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1848,\n      784,\n      1,\n      700,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1849,\n      779,\n      0,\n      785,\n      0,\n      \"*\"\n    ],\n    [\n      1850,\n      785,\n      0,\n      784,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1851,\n      636,\n      0,\n      786,\n      0,\n      \"*\"\n    ],\n    [\n      1852,\n      786,\n      0,\n      735,\n      0,\n      \"*\"\n    ],\n    [\n      1853,\n      786,\n      0,\n      744,\n      0,\n      \"*\"\n    ],\n    [\n      1855,\n      241,\n      1,\n      788,\n      0,\n      \"*\"\n    ],\n    [\n      1856,\n      788,\n      0,\n      732,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1857,\n      788,\n      0,\n      783,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1858,\n      788,\n      0,\n      789,\n      0,\n      \"*\"\n    ],\n    [\n      1859,\n      789,\n      0,\n      738,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1862,\n      241,\n      1,\n      693,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1863,\n      241,\n      1,\n      692,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1865,\n      780,\n      0,\n      791,\n      0,\n      \"*\"\n    ],\n    [\n      1866,\n      738,\n      0,\n      792,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1867,\n      787,\n      0,\n      792,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1868,\n      744,\n      0,\n      792,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1870,\n      792,\n      0,\n      717,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1871,\n      792,\n      1,\n      717,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1872,\n      791,\n      0,\n      792,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1874,\n      474,\n      0,\n      710,\n      1,\n      \"VAE\"\n    ],\n    [\n      1875,\n      474,\n      0,\n      722,\n      1,\n      \"VAE\"\n    ],\n    [\n      1876,\n      474,\n      0,\n      707,\n      1,\n      \"VAE\"\n    ],\n    [\n      1877,\n      474,\n      0,\n      727,\n      0,\n      \"*\"\n    ],\n    [\n      1878,\n      789,\n      0,\n      787,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1880,\n      680,\n      0,\n      793,\n      1,\n      \"INT\"\n    ],\n    [\n      1881,\n      679,\n      0,\n      793,\n      2,\n      \"INT\"\n    ],\n    [\n      1882,\n      680,\n      0,\n      794,\n      1,\n      \"INT\"\n    ],\n    [\n      1883,\n      679,\n      0,\n      794,\n      2,\n      \"INT\"\n    ],\n    [\n      1884,\n      793,\n      0,\n      795,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1885,\n      795,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1887,\n      698,\n      3,\n      796,\n      1,\n      \"INT\"\n    ],\n    [\n      1888,\n      698,\n      4,\n      796,\n      2,\n      \"INT\"\n    ],\n    [\n      1889,\n      698,\n      5,\n      796,\n      3,\n      \"INT\"\n    ],\n    [\n      1890,\n      698,\n      6,\n      796,\n      4,\n      \"INT\"\n    ],\n    [\n      1891,\n      796,\n      0,\n      797,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1892,\n      698,\n      7,\n      797,\n      1,\n      \"INT\"\n    ],\n    [\n      1893,\n      698,\n      8,\n      797,\n      2,\n      \"INT\"\n    ],\n    [\n      1894,\n      797,\n      0,\n      799,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1895,\n      799,\n      0,\n      784,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1896,\n      793,\n      0,\n      796,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1897,\n      793,\n      0,\n      800,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1898,\n      794,\n      0,\n      801,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1899,\n      801,\n      0,\n      778,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1900,\n      800,\n      0,\n      698,\n      1,\n      \"MASK\"\n    ],\n    [\n      1901,\n      802,\n      0,\n      716,\n      1,\n      \"MASK\"\n    ],\n    [\n      1902,\n      794,\n      0,\n      802,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1903,\n      716,\n      3,\n      803,\n      1,\n      \"INT\"\n    ],\n    [\n      1904,\n      716,\n      4,\n      803,\n      2,\n      \"INT\"\n    ],\n    [\n      1905,\n      716,\n      5,\n      803,\n      3,\n      \"INT\"\n    ],\n    [\n      1906,\n      716,\n      6,\n      803,\n      4,\n      \"INT\"\n    ],\n    [\n      1907,\n      716,\n      7,\n      804,\n      1,\n      \"INT\"\n    ],\n    [\n      1908,\n      716,\n      8,\n      804,\n      2,\n      \"INT\"\n    ],\n    [\n      1909,\n      803,\n      0,\n      804,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1910,\n      804,\n      0,\n      805,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1911,\n      805,\n      0,\n      792,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1915,\n      806,\n      0,\n      803,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1916,\n      794,\n      0,\n      806,\n      0,\n      \"*\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 1.7449402268887526,\n      \"offset\": [\n        -1259.0888804104598,\n        696.9174879037733\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/prop2image_latent_upscale.json",
    "content": "{\n  \"last_node_id\": 871,\n  \"last_link_id\": 2058,\n  \"nodes\": [\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -549,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1897\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -181,\n        \"1\": -270\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1901\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1900\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 798,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -233,\n        \"1\": -459\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1904\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1905\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1913\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1896\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 813,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -158,\n        \"1\": 348\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1929\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1930\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 814,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5150,\n        \"1\": 340\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1930\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1931\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 812,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4780,\n        \"1\": 250\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1932\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1925,\n            1984\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 811,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -341,\n        \"1\": 262\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1922\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1932\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 825,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5470,\n        \"1\": -320\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2048\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1953\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 829,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6300,\n        \"1\": 420\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1959\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1960\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 806,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 5900,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 67,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1951\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1961\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1954\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 821,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 5690,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 65,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1947\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1950\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1951\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 832,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6540,\n        \"1\": -650\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 62,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1966,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1968\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 833,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6540,\n        \"1\": -630\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 63,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1967,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1969\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 837,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5180,\n        \"1\": 520\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2047\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1976\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 836,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -470,\n        \"1\": 525\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1974\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2045\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -134\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801,\n            2011\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 830,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 6700,\n        \"1\": -550\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 73,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1962\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1963,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1964,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1982\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 827,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 6510,\n        \"1\": -300\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 71,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1957\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1960\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1958,\n            1962\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 810,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 4910,\n        \"1\": -10\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1984\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1928\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -457\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800,\n            2010\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man in the city, high quality\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -548,\n        \"1\": 111\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            1985\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -550,\n        \"1\": -21\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            1986\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 842,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 5410,\n        \"1\": -410\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 66,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1998\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1996,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1997,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1999\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 845,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 178,\n        \"1\": -599\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2004\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2005\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 839,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": -185,\n        \"1\": -734\n      },\n      \"size\": {\n        \"0\": 236.70094299316406,\n        \"1\": 364.1435852050781\n      },\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1985,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1986,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2004,\n            2008\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              472.04601395803036,\n              196.62261562933992\n            ],\n            [\n              518.1434010837521,\n              196.62261562934006\n            ],\n            [\n              495.09470752089123,\n              219.6713091922009\n            ],\n            [\n              472.0460139580306,\n              242.7200027550619\n            ],\n            [\n              518.1434010837517,\n              242.72000275506167\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"bbox\": [\n            [\n              457,\n              182\n            ],\n            [\n              534,\n              259\n            ]\n          ]\n        },\n        1.7663083511306758e-13,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -984,\n        \"1\": -248\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802,\n            1974\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 796,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": -85\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1898,\n            1901,\n            1929,\n            2016\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 150,\n        \"1\": -329\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2019,\n            2023\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 605,\n        \"1\": 72\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2022\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 543,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2005\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2020\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2021\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 794,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -155\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1902,\n            1904,\n            1922\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1948\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 793,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": -214,\n        \"1\": -154\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1893\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1913\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 822,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -559,\n        \"1\": 413\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1948\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2029\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 860,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1240,\n        \"1\": 425\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2029\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2030,\n            2034\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 861,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3263.10205078125,\n        \"1\": 409.437744140625\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2030\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2031,\n            2033\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 850,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1331,\n        \"1\": -513\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2008\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2009\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 865,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1672,\n        \"1\": -591\n      },\n      \"size\": [\n        90.4,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2043\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2044\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 862,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5090,\n        \"1\": 410\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2031\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 834,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 6950,\n        \"1\": -230\n      },\n      \"size\": {\n        \"0\": 828.2597045898438,\n        \"1\": 691.5579223632812\n      },\n      \"flags\": {},\n      \"order\": 75,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1970\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 823,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5400,\n        \"1\": 410\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2032\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1950,\n            1959\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 851,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2231.101806640625,\n        \"1\": -439.562255859375\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2010\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2012\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 852,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2204.1015625,\n        \"1\": -129.56224060058594\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2011\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2013\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 855,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2195.1015625,\n        \"1\": -114.56224822998047\n      },\n      \"size\": [\n        182.79999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2016\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"FACE_CONDITIONING\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            2017\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 866,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2259.10205078125,\n        \"1\": 511.437744140625\n      },\n      \"size\": [\n        132.39999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2045\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2046,\n            2047\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 831,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 6830,\n        \"1\": -610\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 74,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1983\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1982\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1968,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1969,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1970\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 859,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 3441.10205078125,\n        \"1\": -287.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {},\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2027\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2033\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2035,\n            2055\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 858,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2687.10205078125,\n        \"1\": -327.562255859375\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2023\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2024,\n            2048\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 864,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 2418.10205078125,\n        \"1\": -413.562255859375\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2036\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2037\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 849,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": 2083.10302734375,\n        \"1\": -683.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"FLOAT\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            2006,\n            2007\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1.4000000000000001,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 853,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 2570.10205078125,\n        \"1\": -153.562255859375\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2012\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2013\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 2017\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 2046\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2037\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2025\n          ],\n          \"slot_index\": 0\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2026\n          ],\n          \"slot_index\": 1\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1408,\n        \"1\": -293\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2018\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2034\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 809,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 4910,\n        \"1\": -160\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1925\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1927\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 844,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 4520,\n        \"1\": -720\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2051\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            2003\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        3\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 4890,\n        \"1\": -740\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 59,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2054\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 2003\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1943\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1918\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1966,\n            1989\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1967,\n            1990\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1963,\n            1991\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1964,\n            1992\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1996\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1997\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 828,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 6520,\n        \"1\": -240\n      },\n      \"size\": {\n        \"0\": 402.61297607421875,\n        \"1\": 261.80877685546875\n      },\n      \"flags\": {},\n      \"order\": 72,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1958\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 848,\n      \"type\": \"KpsScaleBy\",\n      \"pos\": {\n        \"0\": 2327,\n        \"1\": -499\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2009\n        },\n        {\n          \"name\": \"scale\",\n          \"type\": \"FLOAT\",\n          \"link\": 2007,\n          \"widget\": {\n            \"name\": \"scale\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2036,\n            2040\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScaleBy\"\n      },\n      \"widgets_values\": [\n        1.4000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 843,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 5554,\n        \"1\": -411\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 68,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1999\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2000\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 838,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6373,\n        \"1\": -381\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 58,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2053\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1983\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 868,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4748,\n        \"1\": -395\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 57,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2056\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2053,\n            2054\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 869,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3721,\n        \"1\": -398\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 56,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2055\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2056\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 863,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 3694,\n        \"1\": -276\n      },\n      \"size\": {\n        \"0\": 371.20855712890625,\n        \"1\": 519.438720703125\n      },\n      \"flags\": {},\n      \"order\": 55,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2035\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 800,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1544,\n        \"1\": -218\n      },\n      \"size\": {\n        \"0\": 351.6155090332031,\n        \"1\": 362.6221008300781\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1908\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 847,\n      \"type\": \"LatentUpscaleBy\",\n      \"pos\": {\n        \"0\": 2599,\n        \"1\": -557\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2044\n        },\n        {\n          \"name\": \"scale_by\",\n          \"type\": \"FLOAT\",\n          \"link\": 2006,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2038\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LatentUpscaleBy\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        1.4000000000000001\n      ]\n    },\n    {\n      \"id\": 803,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5525,\n        \"1\": -739\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 60,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1943\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1947\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 805,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5726,\n        \"1\": -715\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 61,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1918\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1961\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 807,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 5692,\n        \"1\": -164\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 69,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1927\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1928\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1931\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1976\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2000\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1955\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1956\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 835,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4184,\n        \"1\": -527\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2040\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2051,\n            2057\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 870,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4359,\n        \"1\": -440.2700500488281\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2057\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2058\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 841,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 5260,\n        \"1\": -410\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 64,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2058\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1989,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1990,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1991,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1992,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1998\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 871,\n      \"type\": \"Note\",\n      \"pos\": {\n        \"0\": 1384,\n        \"1\": -182\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 291.76165771484375\n      },\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [],\n      \"properties\": {},\n      \"widgets_values\": [\n        \"Image should be undercooked here,\\nit runs just enough to set up the scene.\\n\\nIf you want to end generation here set \\\"end_at_step\\\" to \\\"steps\\\"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 857,\n      \"type\": \"KSamplerAdvanced\",\n      \"pos\": {\n        \"0\": 1008,\n        \"1\": -320\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 546\n      },\n      \"flags\": {},\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2019\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2020\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2021\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2022\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2018,\n            2043\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSamplerAdvanced\"\n      },\n      \"widgets_values\": [\n        \"enable\",\n        197208621749654,\n        \"randomize\",\n        50,\n        4,\n        \"euler\",\n        \"normal\",\n        0,\n        25,\n        \"disable\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 856,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 2993.10205078125,\n        \"1\": -330.562255859375\n      },\n      \"size\": {\n        \"0\": 377.1995544433594,\n        \"1\": 577.224609375\n      },\n      \"flags\": {},\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2024\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2025\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2026\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2038\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        221304521576655,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 824,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 6170,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 474\n      },\n      \"flags\": {},\n      \"order\": 70,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1953\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1955\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1956\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1954\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1957\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        347340221446662,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    }\n  ],\n  \"links\": [\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1893,\n      794,\n      0,\n      793,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1896,\n      774,\n      1,\n      796,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1897,\n      642,\n      0,\n      796,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1898,\n      796,\n      0,\n      793,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1900,\n      797,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1901,\n      796,\n      0,\n      797,\n      0,\n      \"*\"\n    ],\n    [\n      1902,\n      794,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1904,\n      794,\n      1,\n      798,\n      0,\n      \"*\"\n    ],\n    [\n      1905,\n      798,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1908,\n      248,\n      0,\n      800,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1911,\n      793,\n      0,\n      801,\n      0,\n      \"*\"\n    ],\n    [\n      1913,\n      774,\n      0,\n      793,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1918,\n      802,\n      1,\n      805,\n      0,\n      \"*\"\n    ],\n    [\n      1922,\n      794,\n      1,\n      811,\n      0,\n      \"*\"\n    ],\n    [\n      1925,\n      812,\n      0,\n      809,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1927,\n      809,\n      0,\n      807,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1928,\n      810,\n      0,\n      807,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1929,\n      796,\n      0,\n      813,\n      0,\n      \"*\"\n    ],\n    [\n      1930,\n      813,\n      0,\n      814,\n      0,\n      \"*\"\n    ],\n    [\n      1931,\n      814,\n      0,\n      807,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1932,\n      811,\n      0,\n      812,\n      0,\n      \"*\"\n    ],\n    [\n      1943,\n      802,\n      0,\n      803,\n      0,\n      \"*\"\n    ],\n    [\n      1947,\n      803,\n      0,\n      821,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1948,\n      794,\n      2,\n      822,\n      0,\n      \"*\"\n    ],\n    [\n      1950,\n      823,\n      0,\n      821,\n      1,\n      \"VAE\"\n    ],\n    [\n      1951,\n      821,\n      0,\n      806,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1953,\n      825,\n      0,\n      824,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1954,\n      806,\n      0,\n      824,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1955,\n      807,\n      0,\n      824,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1956,\n      807,\n      1,\n      824,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1957,\n      824,\n      0,\n      827,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1958,\n      827,\n      0,\n      828,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1959,\n      823,\n      0,\n      829,\n      0,\n      \"*\"\n    ],\n    [\n      1960,\n      829,\n      0,\n      827,\n      1,\n      \"VAE\"\n    ],\n    [\n      1961,\n      805,\n      0,\n      806,\n      1,\n      \"MASK\"\n    ],\n    [\n      1962,\n      827,\n      0,\n      830,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1963,\n      802,\n      5,\n      830,\n      1,\n      \"INT\"\n    ],\n    [\n      1964,\n      802,\n      6,\n      830,\n      2,\n      \"INT\"\n    ],\n    [\n      1966,\n      802,\n      3,\n      832,\n      0,\n      \"*\"\n    ],\n    [\n      1967,\n      802,\n      4,\n      833,\n      0,\n      \"*\"\n    ],\n    [\n      1968,\n      832,\n      0,\n      831,\n      3,\n      \"INT\"\n    ],\n    [\n      1969,\n      833,\n      0,\n      831,\n      4,\n      \"INT\"\n    ],\n    [\n      1970,\n      831,\n      0,\n      834,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1974,\n      636,\n      0,\n      836,\n      0,\n      \"*\"\n    ],\n    [\n      1976,\n      837,\n      0,\n      807,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1982,\n      830,\n      0,\n      831,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1983,\n      838,\n      0,\n      831,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1984,\n      812,\n      0,\n      810,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1985,\n      680,\n      0,\n      839,\n      1,\n      \"INT\"\n    ],\n    [\n      1986,\n      679,\n      0,\n      839,\n      2,\n      \"INT\"\n    ],\n    [\n      1989,\n      802,\n      3,\n      841,\n      1,\n      \"INT\"\n    ],\n    [\n      1990,\n      802,\n      4,\n      841,\n      2,\n      \"INT\"\n    ],\n    [\n      1991,\n      802,\n      5,\n      841,\n      3,\n      \"INT\"\n    ],\n    [\n      1992,\n      802,\n      6,\n      841,\n      4,\n      \"INT\"\n    ],\n    [\n      1996,\n      802,\n      7,\n      842,\n      1,\n      \"INT\"\n    ],\n    [\n      1997,\n      802,\n      8,\n      842,\n      2,\n      \"INT\"\n    ],\n    [\n      1998,\n      841,\n      0,\n      842,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1999,\n      842,\n      0,\n      843,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2000,\n      843,\n      0,\n      807,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2003,\n      844,\n      0,\n      802,\n      1,\n      \"MASK\"\n    ],\n    [\n      2004,\n      839,\n      0,\n      845,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2005,\n      845,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2006,\n      849,\n      0,\n      847,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2007,\n      849,\n      0,\n      848,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2008,\n      839,\n      0,\n      850,\n      0,\n      \"*\"\n    ],\n    [\n      2009,\n      850,\n      0,\n      848,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2010,\n      252,\n      0,\n      851,\n      0,\n      \"*\"\n    ],\n    [\n      2011,\n      287,\n      0,\n      852,\n      0,\n      \"*\"\n    ],\n    [\n      2012,\n      851,\n      0,\n      853,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      2013,\n      852,\n      0,\n      853,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2016,\n      796,\n      0,\n      855,\n      0,\n      \"*\"\n    ],\n    [\n      2017,\n      855,\n      0,\n      853,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      2018,\n      857,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2019,\n      801,\n      0,\n      857,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2020,\n      775,\n      0,\n      857,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2021,\n      775,\n      1,\n      857,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2022,\n      677,\n      0,\n      857,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2023,\n      801,\n      0,\n      858,\n      0,\n      \"*\"\n    ],\n    [\n      2024,\n      858,\n      0,\n      856,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2025,\n      853,\n      0,\n      856,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2026,\n      853,\n      1,\n      856,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2027,\n      856,\n      0,\n      859,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2029,\n      822,\n      0,\n      860,\n      0,\n      \"*\"\n    ],\n    [\n      2030,\n      860,\n      0,\n      861,\n      0,\n      \"*\"\n    ],\n    [\n      2031,\n      861,\n      0,\n      862,\n      0,\n      \"*\"\n    ],\n    [\n      2032,\n      862,\n      0,\n      823,\n      0,\n      \"*\"\n    ],\n    [\n      2033,\n      861,\n      0,\n      859,\n      1,\n      \"VAE\"\n    ],\n    [\n      2034,\n      860,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      2035,\n      859,\n      0,\n      863,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2036,\n      848,\n      0,\n      864,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2037,\n      864,\n      0,\n      853,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2038,\n      847,\n      0,\n      856,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2040,\n      848,\n      0,\n      835,\n      0,\n      \"*\"\n    ],\n    [\n      2043,\n      857,\n      0,\n      865,\n      0,\n      \"*\"\n    ],\n    [\n      2044,\n      865,\n      0,\n      847,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2045,\n      836,\n      0,\n      866,\n      0,\n      \"*\"\n    ],\n    [\n      2046,\n      866,\n      0,\n      853,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      2047,\n      866,\n      0,\n      837,\n      0,\n      \"*\"\n    ],\n    [\n      2048,\n      858,\n      0,\n      825,\n      0,\n      \"*\"\n    ],\n    [\n      2051,\n      835,\n      0,\n      844,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2053,\n      868,\n      0,\n      838,\n      0,\n      \"*\"\n    ],\n    [\n      2054,\n      868,\n      0,\n      802,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2055,\n      859,\n      0,\n      869,\n      0,\n      \"*\"\n    ],\n    [\n      2056,\n      869,\n      0,\n      868,\n      0,\n      \"*\"\n    ],\n    [\n      2057,\n      835,\n      0,\n      870,\n      0,\n      \"*\"\n    ],\n    [\n      2058,\n      870,\n      0,\n      841,\n      0,\n      \"KPS_DATA\"\n    ]\n  ],\n  \"groups\": [\n    {\n      \"title\": \"Latent upscale\",\n      \"bounding\": [\n        2071,\n        -847,\n        2044,\n        1475\n      ],\n      \"color\": \"#3f789e\",\n      \"font_size\": 24,\n      \"flags\": {}\n    },\n    {\n      \"title\": \"Enhance face\",\n      \"bounding\": [\n        4511,\n        -990,\n        3383,\n        1704\n      ],\n      \"color\": \"#88A\",\n      \"font_size\": 24,\n      \"flags\": {}\n    }\n  ],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.3138428376721215,\n      \"offset\": [\n        1679.847546217188,\n        1589.2517600833814\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/prop2image_latent_upscale_with_2d_randomizer.json",
    "content": "{\n  \"last_node_id\": 874,\n  \"last_link_id\": 2062,\n  \"nodes\": [\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -549,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1897\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -181,\n        \"1\": -270\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1901\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1900\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 798,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -233,\n        \"1\": -459\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1904\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1905\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1913\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1896\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 813,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -158,\n        \"1\": 348\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1929\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1930\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 814,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5150,\n        \"1\": 340\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1930\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1931\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 812,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4780,\n        \"1\": 250\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1932\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1925,\n            1984\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 811,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -341,\n        \"1\": 262\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1922\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1932\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 825,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5470,\n        \"1\": -320\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2048\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1953\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 829,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6300,\n        \"1\": 420\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1959\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1960\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 806,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 5900,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 69,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1951\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1961\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1954\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 821,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 5690,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 67,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1947\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1950\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1951\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 832,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6540,\n        \"1\": -650\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 64,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1966,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1968\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 833,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6540,\n        \"1\": -630\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 65,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1967,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1969\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 837,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5180,\n        \"1\": 520\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2047\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1976\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 836,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -470,\n        \"1\": 525\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1974\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2045\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 830,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 6700,\n        \"1\": -550\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 75,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1962\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1963,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1964,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1982\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 827,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 6510,\n        \"1\": -300\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 73,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1957\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1960\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1958,\n            1962\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 810,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 4910,\n        \"1\": -10\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1984\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1928\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -457\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800,\n            2010\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man in the city, high quality\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -548,\n        \"1\": 111\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            1985\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -550,\n        \"1\": -21\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            1986\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 842,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 5410,\n        \"1\": -410\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 68,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1998\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1996,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1997,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1999\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -984,\n        \"1\": -248\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802,\n            1974\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 796,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": -85\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1898,\n            1901,\n            1929,\n            2016\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 150,\n        \"1\": -329\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2019,\n            2023\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 605,\n        \"1\": 72\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2022\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 543,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2005\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2020\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2021\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 794,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -155\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1902,\n            1904,\n            1922\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1948\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 793,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": -214,\n        \"1\": -154\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1893\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1913\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 822,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -559,\n        \"1\": 413\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1948\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2029\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 860,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1240,\n        \"1\": 425\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2029\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2030,\n            2034\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 861,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3263.10205078125,\n        \"1\": 409.437744140625\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2030\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2031,\n            2033\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 850,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1331,\n        \"1\": -513\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2061\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2009\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 865,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1672,\n        \"1\": -591\n      },\n      \"size\": [\n        90.4,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2043\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2044\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 862,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5090,\n        \"1\": 410\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2031\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 834,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 6950,\n        \"1\": -230\n      },\n      \"size\": {\n        \"0\": 828.2597045898438,\n        \"1\": 691.5579223632812\n      },\n      \"flags\": {},\n      \"order\": 77,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1970\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 823,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5400,\n        \"1\": 410\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2032\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1950,\n            1959\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 851,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2231.101806640625,\n        \"1\": -439.562255859375\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2010\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2012\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 852,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2204.1015625,\n        \"1\": -129.56224060058594\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2011\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2013\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 855,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2195.1015625,\n        \"1\": -114.56224822998047\n      },\n      \"size\": [\n        182.79999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2016\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"FACE_CONDITIONING\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            2017\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 831,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 6830,\n        \"1\": -610\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 76,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1983\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1982\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1968,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1969,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1970\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 859,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 3441.10205078125,\n        \"1\": -287.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {},\n      \"order\": 56,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2027\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2033\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2035,\n            2055\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 858,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2687.10205078125,\n        \"1\": -327.562255859375\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2023\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2024,\n            2048\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 864,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 2418.10205078125,\n        \"1\": -413.562255859375\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2036\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2037\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 849,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": 2083.10302734375,\n        \"1\": -683.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"FLOAT\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            2006,\n            2007\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1.4000000000000001,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 853,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 2570.10205078125,\n        \"1\": -153.562255859375\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2012\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2013\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 2017\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 2046\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2037\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2025\n          ],\n          \"slot_index\": 0\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2026\n          ],\n          \"slot_index\": 1\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 809,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 4910,\n        \"1\": -160\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1925\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1927\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 844,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 4520,\n        \"1\": -720\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2051\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            2003\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        3\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 4890,\n        \"1\": -740\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 61,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2054\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 2003\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1943\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1918\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1966,\n            1989\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1967,\n            1990\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1963,\n            1991\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1964,\n            1992\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1996\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1997\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 828,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 6520,\n        \"1\": -240\n      },\n      \"size\": {\n        \"0\": 402.61297607421875,\n        \"1\": 261.80877685546875\n      },\n      \"flags\": {},\n      \"order\": 74,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1958\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 848,\n      \"type\": \"KpsScaleBy\",\n      \"pos\": {\n        \"0\": 2327,\n        \"1\": -499\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2009\n        },\n        {\n          \"name\": \"scale\",\n          \"type\": \"FLOAT\",\n          \"link\": 2007,\n          \"widget\": {\n            \"name\": \"scale\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2036,\n            2040\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScaleBy\"\n      },\n      \"widgets_values\": [\n        1.4000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 843,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 5554,\n        \"1\": -411\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 70,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1999\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2000\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 838,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6373,\n        \"1\": -381\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 60,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2053\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1983\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 868,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4748,\n        \"1\": -395\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 59,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2056\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2053,\n            2054\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 869,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3721,\n        \"1\": -398\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 58,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2055\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2056\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 863,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 3694,\n        \"1\": -276\n      },\n      \"size\": {\n        \"0\": 371.20855712890625,\n        \"1\": 519.438720703125\n      },\n      \"flags\": {},\n      \"order\": 57,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2035\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 800,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1544,\n        \"1\": -218\n      },\n      \"size\": {\n        \"0\": 351.6155090332031,\n        \"1\": 362.6221008300781\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1908\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 847,\n      \"type\": \"LatentUpscaleBy\",\n      \"pos\": {\n        \"0\": 2599,\n        \"1\": -557\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2044\n        },\n        {\n          \"name\": \"scale_by\",\n          \"type\": \"FLOAT\",\n          \"link\": 2006,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2038\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LatentUpscaleBy\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        1.4000000000000001\n      ]\n    },\n    {\n      \"id\": 803,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5525,\n        \"1\": -739\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 62,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1943\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1947\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 805,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5726,\n        \"1\": -715\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 63,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1918\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1961\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 807,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 5692,\n        \"1\": -164\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 71,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1927\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1928\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1931\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1976\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2000\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1955\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1956\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 835,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4184,\n        \"1\": -527\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2040\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2051,\n            2057\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 870,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4359,\n        \"1\": -440.2700500488281\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2057\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2058\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 841,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 5260,\n        \"1\": -410\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 66,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2058\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1989,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1990,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1991,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1992,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1998\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 839,\n      \"type\": \"KpsDraw\",\n      \"pos\": {\n        \"0\": -185,\n        \"1\": -734\n      },\n      \"size\": {\n        \"0\": 236.70094299316406,\n        \"1\": 364.1435852050781\n      },\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image_reference\",\n          \"type\": \"IMAGE\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1985,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1986,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2059\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsDraw\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              472.04601395803036,\n              196.62261562933992\n            ],\n            [\n              518.1434010837521,\n              196.62261562934006\n            ],\n            [\n              495.09470752089123,\n              219.6713091922009\n            ],\n            [\n              472.0460139580306,\n              242.7200027550619\n            ],\n            [\n              518.1434010837517,\n              242.72000275506167\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"bbox\": [\n            [\n              457,\n              182\n            ],\n            [\n              534,\n              259\n            ]\n          ]\n        },\n        1.7663083511306758e-13,\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 873,\n      \"type\": \"Kps2dRandomizer\",\n      \"pos\": {\n        \"0\": 124,\n        \"1\": -918\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 250\n      },\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2059\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2060,\n            2061\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps2dRandomizer\"\n      },\n      \"widgets_values\": [\n        427557663333553,\n        \"randomize\",\n        -10,\n        10,\n        0.9,\n        1.2,\n        500,\n        50,\n        100\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 874,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 563,\n        \"1\": -930\n      },\n      \"size\": {\n        \"0\": 357.7528991699219,\n        \"1\": 273.61285400390625\n      },\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2062\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Randomized KPS\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 845,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 214,\n        \"1\": -566\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2060\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2005,\n            2062\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 167,\n        \"1\": -137\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801,\n            2011\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1412,\n        \"1\": -302\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2018\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2034\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 866,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2259,\n        \"1\": 504\n      },\n      \"size\": [\n        132.39999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2045\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2046,\n            2047\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 871,\n      \"type\": \"Note\",\n      \"pos\": {\n        \"0\": 1390,\n        \"1\": -164\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 291.76165771484375\n      },\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [],\n      \"properties\": {},\n      \"widgets_values\": [\n        \"Image should be undercooked here,\\nit runs just enough to set up the scene.\\n\\nIf you want to end generation here set \\\"end_at_step\\\" to \\\"steps\\\"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 857,\n      \"type\": \"KSamplerAdvanced\",\n      \"pos\": {\n        \"0\": 1010,\n        \"1\": -329\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 546\n      },\n      \"flags\": {},\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2019\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2020\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2021\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2022\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2018,\n            2043\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSamplerAdvanced\"\n      },\n      \"widgets_values\": [\n        \"enable\",\n        999475885971695,\n        \"randomize\",\n        50,\n        4,\n        \"euler\",\n        \"normal\",\n        0,\n        25,\n        \"disable\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 856,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 2993.10205078125,\n        \"1\": -330.562255859375\n      },\n      \"size\": {\n        \"0\": 377.1995544433594,\n        \"1\": 577.224609375\n      },\n      \"flags\": {},\n      \"order\": 55,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2024\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2025\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2026\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2038\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        651934171295422,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 824,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 6170,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 474\n      },\n      \"flags\": {},\n      \"order\": 72,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1953\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1955\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1956\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1954\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1957\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        711522245776442,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    }\n  ],\n  \"links\": [\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1893,\n      794,\n      0,\n      793,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1896,\n      774,\n      1,\n      796,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1897,\n      642,\n      0,\n      796,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1898,\n      796,\n      0,\n      793,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1900,\n      797,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1901,\n      796,\n      0,\n      797,\n      0,\n      \"*\"\n    ],\n    [\n      1902,\n      794,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1904,\n      794,\n      1,\n      798,\n      0,\n      \"*\"\n    ],\n    [\n      1905,\n      798,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1908,\n      248,\n      0,\n      800,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1911,\n      793,\n      0,\n      801,\n      0,\n      \"*\"\n    ],\n    [\n      1913,\n      774,\n      0,\n      793,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1918,\n      802,\n      1,\n      805,\n      0,\n      \"*\"\n    ],\n    [\n      1922,\n      794,\n      1,\n      811,\n      0,\n      \"*\"\n    ],\n    [\n      1925,\n      812,\n      0,\n      809,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1927,\n      809,\n      0,\n      807,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1928,\n      810,\n      0,\n      807,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1929,\n      796,\n      0,\n      813,\n      0,\n      \"*\"\n    ],\n    [\n      1930,\n      813,\n      0,\n      814,\n      0,\n      \"*\"\n    ],\n    [\n      1931,\n      814,\n      0,\n      807,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1932,\n      811,\n      0,\n      812,\n      0,\n      \"*\"\n    ],\n    [\n      1943,\n      802,\n      0,\n      803,\n      0,\n      \"*\"\n    ],\n    [\n      1947,\n      803,\n      0,\n      821,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1948,\n      794,\n      2,\n      822,\n      0,\n      \"*\"\n    ],\n    [\n      1950,\n      823,\n      0,\n      821,\n      1,\n      \"VAE\"\n    ],\n    [\n      1951,\n      821,\n      0,\n      806,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1953,\n      825,\n      0,\n      824,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1954,\n      806,\n      0,\n      824,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1955,\n      807,\n      0,\n      824,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1956,\n      807,\n      1,\n      824,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1957,\n      824,\n      0,\n      827,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1958,\n      827,\n      0,\n      828,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1959,\n      823,\n      0,\n      829,\n      0,\n      \"*\"\n    ],\n    [\n      1960,\n      829,\n      0,\n      827,\n      1,\n      \"VAE\"\n    ],\n    [\n      1961,\n      805,\n      0,\n      806,\n      1,\n      \"MASK\"\n    ],\n    [\n      1962,\n      827,\n      0,\n      830,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1963,\n      802,\n      5,\n      830,\n      1,\n      \"INT\"\n    ],\n    [\n      1964,\n      802,\n      6,\n      830,\n      2,\n      \"INT\"\n    ],\n    [\n      1966,\n      802,\n      3,\n      832,\n      0,\n      \"*\"\n    ],\n    [\n      1967,\n      802,\n      4,\n      833,\n      0,\n      \"*\"\n    ],\n    [\n      1968,\n      832,\n      0,\n      831,\n      3,\n      \"INT\"\n    ],\n    [\n      1969,\n      833,\n      0,\n      831,\n      4,\n      \"INT\"\n    ],\n    [\n      1970,\n      831,\n      0,\n      834,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1974,\n      636,\n      0,\n      836,\n      0,\n      \"*\"\n    ],\n    [\n      1976,\n      837,\n      0,\n      807,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1982,\n      830,\n      0,\n      831,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1983,\n      838,\n      0,\n      831,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1984,\n      812,\n      0,\n      810,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1985,\n      680,\n      0,\n      839,\n      1,\n      \"INT\"\n    ],\n    [\n      1986,\n      679,\n      0,\n      839,\n      2,\n      \"INT\"\n    ],\n    [\n      1989,\n      802,\n      3,\n      841,\n      1,\n      \"INT\"\n    ],\n    [\n      1990,\n      802,\n      4,\n      841,\n      2,\n      \"INT\"\n    ],\n    [\n      1991,\n      802,\n      5,\n      841,\n      3,\n      \"INT\"\n    ],\n    [\n      1992,\n      802,\n      6,\n      841,\n      4,\n      \"INT\"\n    ],\n    [\n      1996,\n      802,\n      7,\n      842,\n      1,\n      \"INT\"\n    ],\n    [\n      1997,\n      802,\n      8,\n      842,\n      2,\n      \"INT\"\n    ],\n    [\n      1998,\n      841,\n      0,\n      842,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1999,\n      842,\n      0,\n      843,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2000,\n      843,\n      0,\n      807,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2003,\n      844,\n      0,\n      802,\n      1,\n      \"MASK\"\n    ],\n    [\n      2005,\n      845,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2006,\n      849,\n      0,\n      847,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2007,\n      849,\n      0,\n      848,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2009,\n      850,\n      0,\n      848,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2010,\n      252,\n      0,\n      851,\n      0,\n      \"*\"\n    ],\n    [\n      2011,\n      287,\n      0,\n      852,\n      0,\n      \"*\"\n    ],\n    [\n      2012,\n      851,\n      0,\n      853,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      2013,\n      852,\n      0,\n      853,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2016,\n      796,\n      0,\n      855,\n      0,\n      \"*\"\n    ],\n    [\n      2017,\n      855,\n      0,\n      853,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      2018,\n      857,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2019,\n      801,\n      0,\n      857,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2020,\n      775,\n      0,\n      857,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2021,\n      775,\n      1,\n      857,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2022,\n      677,\n      0,\n      857,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2023,\n      801,\n      0,\n      858,\n      0,\n      \"*\"\n    ],\n    [\n      2024,\n      858,\n      0,\n      856,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2025,\n      853,\n      0,\n      856,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2026,\n      853,\n      1,\n      856,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2027,\n      856,\n      0,\n      859,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2029,\n      822,\n      0,\n      860,\n      0,\n      \"*\"\n    ],\n    [\n      2030,\n      860,\n      0,\n      861,\n      0,\n      \"*\"\n    ],\n    [\n      2031,\n      861,\n      0,\n      862,\n      0,\n      \"*\"\n    ],\n    [\n      2032,\n      862,\n      0,\n      823,\n      0,\n      \"*\"\n    ],\n    [\n      2033,\n      861,\n      0,\n      859,\n      1,\n      \"VAE\"\n    ],\n    [\n      2034,\n      860,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      2035,\n      859,\n      0,\n      863,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2036,\n      848,\n      0,\n      864,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2037,\n      864,\n      0,\n      853,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2038,\n      847,\n      0,\n      856,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2040,\n      848,\n      0,\n      835,\n      0,\n      \"*\"\n    ],\n    [\n      2043,\n      857,\n      0,\n      865,\n      0,\n      \"*\"\n    ],\n    [\n      2044,\n      865,\n      0,\n      847,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2045,\n      836,\n      0,\n      866,\n      0,\n      \"*\"\n    ],\n    [\n      2046,\n      866,\n      0,\n      853,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      2047,\n      866,\n      0,\n      837,\n      0,\n      \"*\"\n    ],\n    [\n      2048,\n      858,\n      0,\n      825,\n      0,\n      \"*\"\n    ],\n    [\n      2051,\n      835,\n      0,\n      844,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2053,\n      868,\n      0,\n      838,\n      0,\n      \"*\"\n    ],\n    [\n      2054,\n      868,\n      0,\n      802,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2055,\n      859,\n      0,\n      869,\n      0,\n      \"*\"\n    ],\n    [\n      2056,\n      869,\n      0,\n      868,\n      0,\n      \"*\"\n    ],\n    [\n      2057,\n      835,\n      0,\n      870,\n      0,\n      \"*\"\n    ],\n    [\n      2058,\n      870,\n      0,\n      841,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2059,\n      839,\n      0,\n      873,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2060,\n      873,\n      0,\n      845,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2061,\n      873,\n      0,\n      850,\n      0,\n      \"*\"\n    ],\n    [\n      2062,\n      845,\n      0,\n      874,\n      0,\n      \"IMAGE\"\n    ]\n  ],\n  \"groups\": [\n    {\n      \"title\": \"Latent upscale\",\n      \"bounding\": [\n        2071,\n        -847,\n        2044,\n        1475\n      ],\n      \"color\": \"#3f789e\",\n      \"font_size\": 24,\n      \"flags\": {}\n    },\n    {\n      \"title\": \"Enhance face\",\n      \"bounding\": [\n        4511,\n        -990,\n        3383,\n        1704\n      ],\n      \"color\": \"#88A\",\n      \"font_size\": 24,\n      \"flags\": {}\n    }\n  ],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 1.310999419150096,\n      \"offset\": [\n        -685.4397943829316,\n        328.253528736961\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/prop2image_latent_upscale_with_3d_and_2d_randomizer.json",
    "content": "{\n  \"last_node_id\": 877,\n  \"last_link_id\": 2067,\n  \"nodes\": [\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -549,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1897\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -181,\n        \"1\": -270\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1901\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1900\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 798,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -233,\n        \"1\": -459\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1904\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1905\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1913\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1896\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 813,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -158,\n        \"1\": 348\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1929\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1930\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 814,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5150,\n        \"1\": 340\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1930\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1931\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 812,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4780,\n        \"1\": 250\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1932\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1925,\n            1984\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 811,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -341,\n        \"1\": 262\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1922\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1932\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 825,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5470,\n        \"1\": -320\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2048\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1953\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 829,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6300,\n        \"1\": 420\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1959\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1960\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 806,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 5900,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 71,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1951\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1961\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1954\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 821,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 5690,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 69,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1947\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1950\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1951\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 832,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6540,\n        \"1\": -650\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 66,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1966,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1968\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 833,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6540,\n        \"1\": -630\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 67,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1967,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1969\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 837,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5180,\n        \"1\": 520\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2047\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1976\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 836,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -470,\n        \"1\": 525\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1974\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2045\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 830,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 6700,\n        \"1\": -550\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 77,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1962\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1963,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1964,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1982\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 827,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 6510,\n        \"1\": -300\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 75,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1957\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1960\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1958,\n            1962\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 810,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 4910,\n        \"1\": -10\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1984\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1928\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -457\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800,\n            2010\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man in the city, high quality\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 842,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 5410,\n        \"1\": -410\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 70,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1998\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1996,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1997,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1999\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -984,\n        \"1\": -248\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802,\n            1974\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 796,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": -85\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1898,\n            1901,\n            1929,\n            2016\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 150,\n        \"1\": -329\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2019,\n            2023\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 605,\n        \"1\": 72\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2022\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 543,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2005\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2020\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2021\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 794,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -155\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1902,\n            1904,\n            1922\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1948\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 793,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": -214,\n        \"1\": -154\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1893\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1913\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 822,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -559,\n        \"1\": 413\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1948\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2029\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 860,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1240,\n        \"1\": 425\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2029\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2030,\n            2034\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 861,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3263.10205078125,\n        \"1\": 409.437744140625\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2030\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2031,\n            2033\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 850,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1331,\n        \"1\": -513\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2061\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2009\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 865,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1672,\n        \"1\": -591\n      },\n      \"size\": [\n        90.4,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2043\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2044\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 862,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5090,\n        \"1\": 410\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2031\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 834,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 6950,\n        \"1\": -230\n      },\n      \"size\": {\n        \"0\": 828.2597045898438,\n        \"1\": 691.5579223632812\n      },\n      \"flags\": {},\n      \"order\": 79,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1970\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 823,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5400,\n        \"1\": 410\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2032\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1950,\n            1959\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 851,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2231.101806640625,\n        \"1\": -439.562255859375\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2010\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2012\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 852,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2204.1015625,\n        \"1\": -129.56224060058594\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2011\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2013\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 855,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2195.1015625,\n        \"1\": -114.56224822998047\n      },\n      \"size\": [\n        182.79999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2016\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"FACE_CONDITIONING\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            2017\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 831,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 6830,\n        \"1\": -610\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 78,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1983\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1982\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1968,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1969,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1970\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 859,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 3441.10205078125,\n        \"1\": -287.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {},\n      \"order\": 58,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2027\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2033\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2035,\n            2055\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 858,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2687.10205078125,\n        \"1\": -327.562255859375\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2023\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2024,\n            2048\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 864,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 2418.10205078125,\n        \"1\": -413.562255859375\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2036\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2037\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 849,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": 2083.10302734375,\n        \"1\": -683.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"FLOAT\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            2006,\n            2007\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1.4000000000000001,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 853,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 2570.10205078125,\n        \"1\": -153.562255859375\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2012\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2013\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 2017\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 2046\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2037\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2025\n          ],\n          \"slot_index\": 0\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2026\n          ],\n          \"slot_index\": 1\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 809,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 4910,\n        \"1\": -160\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1925\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1927\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 844,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 4520,\n        \"1\": -720\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2051\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            2003\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        3\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 4890,\n        \"1\": -740\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 63,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2054\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 2003\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1943\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1918\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1966,\n            1989\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1967,\n            1990\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1963,\n            1991\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1964,\n            1992\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1996\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1997\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 828,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 6520,\n        \"1\": -240\n      },\n      \"size\": {\n        \"0\": 402.61297607421875,\n        \"1\": 261.80877685546875\n      },\n      \"flags\": {},\n      \"order\": 76,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1958\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 848,\n      \"type\": \"KpsScaleBy\",\n      \"pos\": {\n        \"0\": 2327,\n        \"1\": -499\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2009\n        },\n        {\n          \"name\": \"scale\",\n          \"type\": \"FLOAT\",\n          \"link\": 2007,\n          \"widget\": {\n            \"name\": \"scale\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2036,\n            2040\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScaleBy\"\n      },\n      \"widgets_values\": [\n        1.4000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 843,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 5554,\n        \"1\": -411\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 72,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1999\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2000\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 838,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6373,\n        \"1\": -381\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 62,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2053\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1983\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 868,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4748,\n        \"1\": -395\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 61,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2056\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2053,\n            2054\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 869,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3721,\n        \"1\": -398\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 60,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2055\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2056\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 863,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 3694,\n        \"1\": -276\n      },\n      \"size\": {\n        \"0\": 371.20855712890625,\n        \"1\": 519.438720703125\n      },\n      \"flags\": {},\n      \"order\": 59,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2035\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 847,\n      \"type\": \"LatentUpscaleBy\",\n      \"pos\": {\n        \"0\": 2599,\n        \"1\": -557\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 56,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2044\n        },\n        {\n          \"name\": \"scale_by\",\n          \"type\": \"FLOAT\",\n          \"link\": 2006,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2038\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LatentUpscaleBy\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        1.4000000000000001\n      ]\n    },\n    {\n      \"id\": 803,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5525,\n        \"1\": -739\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 64,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1943\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1947\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 805,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5726,\n        \"1\": -715\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 65,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1918\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1961\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 807,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 5692,\n        \"1\": -164\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 73,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1927\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1928\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1931\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1976\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2000\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1955\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1956\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 835,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4184,\n        \"1\": -527\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2040\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2051,\n            2057\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 870,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4359,\n        \"1\": -440.2700500488281\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2057\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2058\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 841,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 5260,\n        \"1\": -410\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 68,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2058\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1989,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1990,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1991,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1992,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1998\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 167,\n        \"1\": -137\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801,\n            2011\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1412,\n        \"1\": -302\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2018\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2034\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 866,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2259,\n        \"1\": 504\n      },\n      \"size\": [\n        132.39999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2045\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2046,\n            2047\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -550,\n        \"1\": -21\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            2063\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": 109\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            2064\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460,\n            2065\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 873,\n      \"type\": \"Kps2dRandomizer\",\n      \"pos\": {\n        \"0\": 190,\n        \"1\": -900\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 250\n      },\n      \"flags\": {},\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2067\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2060,\n            2061\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps2dRandomizer\"\n      },\n      \"widgets_values\": [\n        1116735576949457,\n        \"randomize\",\n        0,\n        0,\n        0.9,\n        1.2,\n        500,\n        50,\n        100\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 845,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 299,\n        \"1\": -533\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2060\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2005,\n            2062\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 876,\n      \"type\": \"Kps3dRandomizer\",\n      \"pos\": {\n        \"0\": 190,\n        \"1\": -1110\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 154\n      },\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data_3d\",\n          \"type\": \"KPS_DATA_3D\",\n          \"link\": 2066\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2067\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps3dRandomizer\"\n      },\n      \"widgets_values\": [\n        843840005996875,\n        \"randomize\",\n        10,\n        40,\n        5\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 874,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 644,\n        \"1\": -1104\n      },\n      \"size\": {\n        \"0\": 357.7528991699219,\n        \"1\": 273.61285400390625\n      },\n      \"flags\": {},\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2062\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Randomized KPS\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 824,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 6170,\n        \"1\": -290\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 474\n      },\n      \"flags\": {},\n      \"order\": 74,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1953\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1955\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1956\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1954\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1957\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        934650058220617,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 856,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 2993.10205078125,\n        \"1\": -330.562255859375\n      },\n      \"size\": {\n        \"0\": 377.1995544433594,\n        \"1\": 577.224609375\n      },\n      \"flags\": {},\n      \"order\": 57,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2024\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2025\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2026\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2038\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        909511219778624,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 857,\n      \"type\": \"KSamplerAdvanced\",\n      \"pos\": {\n        \"0\": 1010,\n        \"1\": -329\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 546\n      },\n      \"flags\": {},\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2019\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2020\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2021\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2022\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2018,\n            2043\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSamplerAdvanced\"\n      },\n      \"widgets_values\": [\n        \"enable\",\n        163892629628008,\n        \"randomize\",\n        50,\n        4,\n        \"euler\",\n        \"normal\",\n        0,\n        25,\n        \"disable\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 800,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1544,\n        \"1\": -218\n      },\n      \"size\": {\n        \"0\": 351.6155090332031,\n        \"1\": 362.6221008300781\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 55,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1908\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 877,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 10,\n        \"1\": 10\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"*\",\n          \"type\": \"*\",\n          \"links\": null\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 871,\n      \"type\": \"Note\",\n      \"pos\": {\n        \"0\": 1390,\n        \"1\": -164\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 291.76165771484375\n      },\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [],\n      \"properties\": {},\n      \"widgets_values\": [\n        \"Image should be undercooked here,\\nit runs just enough to set up the scene.\\n\\nIf you want to end generation here set \\\"end_at_step\\\" to \\\"steps\\\"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 875,\n      \"type\": \"Kps3dFromImage\",\n      \"pos\": {\n        \"0\": -150,\n        \"1\": -1110\n      },\n      \"size\": {\n        \"0\": 282.88043212890625,\n        \"1\": 452\n      },\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2065,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 2063,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 2064,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data_3d\",\n          \"type\": \"KPS_DATA_3D\",\n          \"links\": [\n            2066\n          ],\n          \"slot_index\": 0\n        },\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": null\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps3dFromImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              433.71764694995295,\n              172.7762382386228,\n              -175.3184183546636\n            ],\n            [\n              510.58058985938527,\n              171.3798893004592,\n              -178.85594444475473\n            ],\n            [\n              471.28693477460877,\n              221.9133957763224,\n              -210.66604318438232\n            ],\n            [\n              443.745690971483,\n              251.81752034424395,\n              -190.96613998861835\n            ],\n            [\n              505.75817676067993,\n              251.9400693705256,\n              -193.018352114209\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"jawline\": [\n            [\n              389.5054435329504,\n              184.08690828360517,\n              -84.70850413422372\n            ],\n            [\n              392.6796166007638,\n              207.80457406029515,\n              -90.81767394113862\n            ],\n            [\n              396.4141106016439,\n              232.0361228375122,\n              -98.91880999782093\n            ],\n            [\n              401.14585839703494,\n              254.89363805554515,\n              -111.20308728063011\n            ],\n            [\n              408.19609823157344,\n              274.27907070316644,\n              -133.42087883243875\n            ],\n            [\n              419.92919533488913,\n              287.6516462677532,\n              -152.61183045125605\n            ],\n            [\n              433.5344446267935,\n              296.46188051844075,\n              -168.43349062170628\n            ],\n            [\n              448.6603667867491,\n              301.6221061799145,\n              -188.01250272777727\n            ],\n            [\n              475.1533525199095,\n              305.75185507846186,\n              -200.302485922294\n            ],\n            [\n              502.4359767320889,\n              299.8296148922806,\n              -189.45694953673942\n            ],\n            [\n              522.0828042744778,\n              291.97027718100156,\n              -169.90656380213005\n            ],\n            [\n              538.5056323641735,\n              279.88841151901994,\n              -151.81017910191878\n            ],\n            [\n              548.5354512893102,\n              267.18307062655623,\n              -132.84052569185022\n            ],\n            [\n              553.8612593217774,\n              252.19326743772805,\n              -116.19439052523256\n            ],\n            [\n              558.5857300123821,\n              229.64150356913615,\n              -102.36937589587579\n            ],\n            [\n              561.2528615262969,\n              202.32078347136647,\n              -97.8671312045414\n            ],\n            [\n              564.2930455073111,\n              179.5307629968404,\n              -94.30836072844278\n            ]\n          ],\n          \"eyebrow_left\": [\n            [\n              406.31616873809094,\n              158.2001328094812,\n              -161.06855634387378\n            ],\n            [\n              413.9742969223488,\n              152.44289411674904,\n              -171.95529469632896\n            ],\n            [\n              423.5018503978363,\n              149.84059499093166,\n              -179.0134852922498\n            ],\n            [\n              435.64616039579005,\n              150.19255837608924,\n              -184.03046211413218\n            ],\n            [\n              448.45686602052655,\n              153.20145564716825,\n              -187.80730975232115\n            ]\n          ],\n          \"eyebrow_right\": [\n            [\n              491.97211319774135,\n              150.33177536078384,\n              -190.61048762766953\n            ],\n            [\n              503.6685988803016,\n              146.20546332103757,\n              -188.51662577540498\n            ],\n            [\n              515.3465287524316,\n              144.26134685895133,\n              -185.04321001035308\n            ],\n            [\n              526.2051631198273,\n              146.17209513323644,\n              -179.30524314030254\n            ],\n            [\n              534.96947577357,\n              151.1995257339739,\n              -172.32034396171218\n            ]\n          ],\n          \"nose_bridge\": [\n            [\n              471.5168654690798,\n              173.42783762352252,\n              -194.5102695268997\n            ],\n            [\n              471.2686048610005,\n              184.58726974574859,\n              -199.3650927688463\n            ],\n            [\n              470.9936884278496,\n              193.34149771990909,\n              -204.43279552902652\n            ],\n            [\n              470.6608133242049,\n              200.83933597301794,\n              -210.66604318438232\n            ]\n          ],\n          \"nose_lower\": [\n            [\n              453.2040877482686,\n              222.37412848158033,\n              -192.50507822832841\n            ],\n            [\n              462.4582415264144,\n              221.79110491783845,\n              -197.95465149943493\n            ],\n            [\n              471.28693477460877,\n              221.9133957763224,\n              -202.1372895000506\n            ],\n            [\n              479.54669073950134,\n              224.1201172947257,\n              -200.12580536142025\n            ],\n            [\n              490.2029215538137,\n              220.86723531971003,\n              -194.47887692782862\n            ]\n          ],\n          \"eye_left\": [\n            [\n              418.97791154378496,\n              173.92322935556828,\n              -167.25896832950173\n            ],\n            [\n              427.6343423292303,\n              167.86664510186577,\n              -176.8816364689355\n            ],\n            [\n              439.058525527588,\n              167.02624437970246,\n              -178.32930029068427\n            ],\n            [\n              449.84793865433267,\n              173.54614301663577,\n              -176.74648159317667\n            ],\n            [\n              439.23950115349606,\n              177.25477183132384,\n              -177.97111667516035\n            ],\n            [\n              427.54766249128636,\n              177.04041188212753,\n              -174.72299466890766\n            ]\n          ],\n          \"eye_right\": [\n            [\n              494.5967115670507,\n              173.32064958118073,\n              -179.09774480709376\n            ],\n            [\n              505.26510853881007,\n              166.35182941571605,\n              -181.04383383250638\n            ],\n            [\n              516.8274437796986,\n              166.34545589822002,\n              -180.19699505089773\n            ],\n            [\n              526.3777160213488,\n              171.89412728170768,\n              -172.09711756222737\n            ],\n            [\n              515.8415009618066,\n              175.39902943335085,\n              -179.7639750451314\n            ],\n            [\n              504.57518737149826,\n              174.9682280570924,\n              -180.93600642147902\n            ]\n          ],\n          \"mouth_outer\": [\n            [\n              443.745690971483,\n              251.81752034424395,\n              -190.96613998861835\n            ],\n            [\n              453.2569153337911,\n              244.3802708460644,\n              -200.90158950762958\n            ],\n            [\n              461.79155546085974,\n              239.53281547102048,\n              -205.59297236452548\n            ],\n            [\n              471.961882209677,\n              241.41664975243742,\n              -207.63840405579907\n            ],\n            [\n              481.14678247619725,\n              239.40700707629864,\n              -206.37752917350332\n            ],\n            [\n              490.5062041736924,\n              243.48734911263784,\n              -202.6979467571814\n            ],\n            [\n              505.75817676067993,\n              251.9400693705256,\n              -193.018352114209\n            ],\n            [\n              492.56944893874584,\n              257.8767830888436,\n              -202.2980171062937\n            ],\n            [\n              482.58348626817605,\n              258.73995098363105,\n              -206.94778452442625\n            ],\n            [\n              473.0707774410334,\n              258.53165797767133,\n              -207.95714321195672\n            ],\n            [\n              463.54022276490224,\n              258.729624271739,\n              -206.82339126236639\n            ],\n            [\n              452.64360546032856,\n              256.97518046323245,\n              -200.86574855639492\n            ]\n          ],\n          \"mouth_inner\": [\n            [\n              447.09712850311803,\n              250.76035548527176,\n              -193.23393432657062\n            ],\n            [\n              462.586647734597,\n              247.93850078333764,\n              -201.67408705676309\n            ],\n            [\n              472.4697950798916,\n              247.40065658412345,\n              -203.3730827757579\n            ],\n            [\n              481.03599622018055,\n              247.31542894003948,\n              -202.68430268994098\n            ],\n            [\n              498.183469045925,\n              250.57274817407102,\n              -195.56475892037878\n            ],\n            [\n              481.4259264070287,\n              248.66235488050702,\n              -205.9814453151741\n            ],\n            [\n              472.489480374436,\n              248.94056295307345,\n              -207.00892289439247\n            ],\n            [\n              461.94374537736854,\n              249.91406531023253,\n              -205.6796612786808\n            ]\n          ],\n          \"rotateX\": 0,\n          \"rotateY\": 360,\n          \"rotateZ\": 0,\n          \"defaultKpsData\": \"{\\\"array\\\":[[259.0189223240886,206.00637784680464,-161.878141518296],[709.3234785408645,197.8258129982231,-182.60287642703724],[479.1200639261718,493.87833644249673,-368.9635836021195],[317.7686102999715,669.0728194129958,-253.5509305043247],[681.0711828557334,669.7907776748775,-265.5738954793406]],\\\"height\\\":1024,\\\"width\\\":1024,\\\"rotateX\\\":0,\\\"rotateY\\\":0,\\\"rotateZ\\\":0,\\\"opacities\\\":[1,1,1,1,1],\\\"jawline\\\":[[0,272.2703805291043,368.9635836021195],[18.59601702137716,411.2212527934467,333.17277343242273],[40.47469613651369,553.1827287081389,285.71195110670936],[68.19582559735079,687.0943752944843,213.7440323555739],[109.49993131776831,800.6646903908388,83.58023187967251],[178.23873943733744,879.0084471759787,-28.850708505627438],[257.94562435102677,930.6235489955409,-121.54252320835153],[346.56143071735266,960.8549327874205,-236.24693113058848],[501.77162345594223,985.0492281741899,-308.24827818855186],[661.6079440970946,950.3535524961192,-244.70927923577125],[776.7096514044409,904.3093152307649,-130.17258002997417],[872.9234318664877,833.5272328741225,-24.15420273262737],[931.683518184544,759.0924965031143,86.98025344441623],[962.8849727708185,671.2741484511048,184.50228714745202],[990.5634690287446,539.1537580997029,265.4966758829751],[1006.1889632823313,379.0942512233561,291.8732524355998],[1024,245.57802523075014,312.7224484103779]],\\\"eyebrow_left\\\":[[98.48629087885193,120.61169429464823,-78.39476778799411],[143.351734263276,86.8826863171701,-142.17515007477272],[199.16927880702656,71.63701514406281,-183.5258356416079],[270.31719374740595,73.69900639704827,-212.91799050600852],[345.36921352198056,91.32674870131498,-235.04480006125783]],\\\"eyebrow_right\\\":[[600.3049904657246,74.5146145449765,-251.46732724243566],[668.8293091453716,50.340454129869954,-239.20035571528254],[737.2449178841147,38.95077182581002,-218.8512136523637],[800.8606518756158,50.14496529701001,-185.23511040155245],[852.2067202240371,79.59836403355236,-144.31380546869116]],\\\"nose_bridge\\\":[[480.4671218895442,209.82379831942703,-274.31435197247015],[479.0126774106356,275.20176771816944,-302.7565237489472],[477.4020687383591,326.48875457696914,-332.4458585061444],[475.4519069289294,370.4151331327517,-368.9635836021195]],\\\"nose_lower\\\":[[373.18099762049303,496.5775570099449,-262.5668603509639],[427.39681934800626,493.1618906667494,-294.4933984267684],[479.1200639261718,493.87833644249673,-318.9975466858585],[527.5101671858453,506.80650073630306,-307.21318821482834],[589.9401120480451,487.7493645047273,-274.1304372034271]],\\\"eye_left\\\":[[172.66560615392797,212.72607015040668,-114.66153843808252],[223.37964435897322,177.24333450019273,-171.03631595934817],[290.3086682884536,172.31981401147067,-179.51751105972022],[353.5188669351921,210.5168950904759,-170.2445058354395],[291.36892106860694,232.24404200103095,-177.41907834393618],[222.87182713937767,230.98820585763428,-158.38982857546176]],\\\"eye_right\\\":[[615.6813026286832,209.19583298253698,-184.0194733036943],[678.1825233999625,168.3687275767284,-195.4207119471242],[745.920916472067,168.33138807528752,-190.4594738354277],[801.8715597956372,200.83849631700764,-143.00602487961916],[740.144731925126,221.372102606823,-187.92260920145966],[674.1405932667781,218.84823590057175,-194.78900084379217]],\\\"mouth_outer\\\":[[317.7686102999715,669.0728194129958,-253.5509305043247],[373.4904900957268,625.5014024468599,-311.758149966949],[423.49101296691,597.1023956067004,-339.2427998574267],[483.0742698635661,608.1389123983984,-351.2260413928955],[536.8843671855499,596.365342207373,-343.8391565973692],[591.7169051343292,620.2701855601886,-322.28217914729674],[681.0711828557334,669.7907776748775,-265.5738954793406],[603.8045052589911,704.5712471068532,-319.9391756511496],[545.3013525230012,709.6281499665452,-347.1800198665548],[489.57077593197357,708.4078572473047,-353.0933872012854],[433.7356487369116,709.5676505211727,-346.45125707725856],[369.89739022289973,699.2891728739157,-311.5481743528338]],\\\"mouth_inner\\\":[[337.4031381133213,662.8793777537512,-266.83689229927944],[428.14909213906014,646.3474316537943,-316.28385706160196],[486.0498972720599,643.1964503841036,-326.23748990854693],[536.2353215731629,642.6971408990134,-322.2022448459132],[636.6944615534592,661.7802729860227,-280.4921193125181],[538.5197428182757,650.5881591832574,-341.51868382728924],[486.1652243398013,652.2180520537465,-347.5382013973857],[424.3826235430874,657.9213536750901,-339.75067025036293]]}\"\n        },\n        -1.0407629248871881,\n        null,\n        \"\",\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    }\n  ],\n  \"links\": [\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1893,\n      794,\n      0,\n      793,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1896,\n      774,\n      1,\n      796,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1897,\n      642,\n      0,\n      796,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1898,\n      796,\n      0,\n      793,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1900,\n      797,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1901,\n      796,\n      0,\n      797,\n      0,\n      \"*\"\n    ],\n    [\n      1902,\n      794,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1904,\n      794,\n      1,\n      798,\n      0,\n      \"*\"\n    ],\n    [\n      1905,\n      798,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1908,\n      248,\n      0,\n      800,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1911,\n      793,\n      0,\n      801,\n      0,\n      \"*\"\n    ],\n    [\n      1913,\n      774,\n      0,\n      793,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1918,\n      802,\n      1,\n      805,\n      0,\n      \"*\"\n    ],\n    [\n      1922,\n      794,\n      1,\n      811,\n      0,\n      \"*\"\n    ],\n    [\n      1925,\n      812,\n      0,\n      809,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1927,\n      809,\n      0,\n      807,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1928,\n      810,\n      0,\n      807,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1929,\n      796,\n      0,\n      813,\n      0,\n      \"*\"\n    ],\n    [\n      1930,\n      813,\n      0,\n      814,\n      0,\n      \"*\"\n    ],\n    [\n      1931,\n      814,\n      0,\n      807,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1932,\n      811,\n      0,\n      812,\n      0,\n      \"*\"\n    ],\n    [\n      1943,\n      802,\n      0,\n      803,\n      0,\n      \"*\"\n    ],\n    [\n      1947,\n      803,\n      0,\n      821,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1948,\n      794,\n      2,\n      822,\n      0,\n      \"*\"\n    ],\n    [\n      1950,\n      823,\n      0,\n      821,\n      1,\n      \"VAE\"\n    ],\n    [\n      1951,\n      821,\n      0,\n      806,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1953,\n      825,\n      0,\n      824,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1954,\n      806,\n      0,\n      824,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1955,\n      807,\n      0,\n      824,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1956,\n      807,\n      1,\n      824,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1957,\n      824,\n      0,\n      827,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1958,\n      827,\n      0,\n      828,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1959,\n      823,\n      0,\n      829,\n      0,\n      \"*\"\n    ],\n    [\n      1960,\n      829,\n      0,\n      827,\n      1,\n      \"VAE\"\n    ],\n    [\n      1961,\n      805,\n      0,\n      806,\n      1,\n      \"MASK\"\n    ],\n    [\n      1962,\n      827,\n      0,\n      830,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1963,\n      802,\n      5,\n      830,\n      1,\n      \"INT\"\n    ],\n    [\n      1964,\n      802,\n      6,\n      830,\n      2,\n      \"INT\"\n    ],\n    [\n      1966,\n      802,\n      3,\n      832,\n      0,\n      \"*\"\n    ],\n    [\n      1967,\n      802,\n      4,\n      833,\n      0,\n      \"*\"\n    ],\n    [\n      1968,\n      832,\n      0,\n      831,\n      3,\n      \"INT\"\n    ],\n    [\n      1969,\n      833,\n      0,\n      831,\n      4,\n      \"INT\"\n    ],\n    [\n      1970,\n      831,\n      0,\n      834,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1974,\n      636,\n      0,\n      836,\n      0,\n      \"*\"\n    ],\n    [\n      1976,\n      837,\n      0,\n      807,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1982,\n      830,\n      0,\n      831,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1983,\n      838,\n      0,\n      831,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1984,\n      812,\n      0,\n      810,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1989,\n      802,\n      3,\n      841,\n      1,\n      \"INT\"\n    ],\n    [\n      1990,\n      802,\n      4,\n      841,\n      2,\n      \"INT\"\n    ],\n    [\n      1991,\n      802,\n      5,\n      841,\n      3,\n      \"INT\"\n    ],\n    [\n      1992,\n      802,\n      6,\n      841,\n      4,\n      \"INT\"\n    ],\n    [\n      1996,\n      802,\n      7,\n      842,\n      1,\n      \"INT\"\n    ],\n    [\n      1997,\n      802,\n      8,\n      842,\n      2,\n      \"INT\"\n    ],\n    [\n      1998,\n      841,\n      0,\n      842,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1999,\n      842,\n      0,\n      843,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2000,\n      843,\n      0,\n      807,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2003,\n      844,\n      0,\n      802,\n      1,\n      \"MASK\"\n    ],\n    [\n      2005,\n      845,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2006,\n      849,\n      0,\n      847,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2007,\n      849,\n      0,\n      848,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2009,\n      850,\n      0,\n      848,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2010,\n      252,\n      0,\n      851,\n      0,\n      \"*\"\n    ],\n    [\n      2011,\n      287,\n      0,\n      852,\n      0,\n      \"*\"\n    ],\n    [\n      2012,\n      851,\n      0,\n      853,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      2013,\n      852,\n      0,\n      853,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2016,\n      796,\n      0,\n      855,\n      0,\n      \"*\"\n    ],\n    [\n      2017,\n      855,\n      0,\n      853,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      2018,\n      857,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2019,\n      801,\n      0,\n      857,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2020,\n      775,\n      0,\n      857,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2021,\n      775,\n      1,\n      857,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2022,\n      677,\n      0,\n      857,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2023,\n      801,\n      0,\n      858,\n      0,\n      \"*\"\n    ],\n    [\n      2024,\n      858,\n      0,\n      856,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2025,\n      853,\n      0,\n      856,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2026,\n      853,\n      1,\n      856,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2027,\n      856,\n      0,\n      859,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2029,\n      822,\n      0,\n      860,\n      0,\n      \"*\"\n    ],\n    [\n      2030,\n      860,\n      0,\n      861,\n      0,\n      \"*\"\n    ],\n    [\n      2031,\n      861,\n      0,\n      862,\n      0,\n      \"*\"\n    ],\n    [\n      2032,\n      862,\n      0,\n      823,\n      0,\n      \"*\"\n    ],\n    [\n      2033,\n      861,\n      0,\n      859,\n      1,\n      \"VAE\"\n    ],\n    [\n      2034,\n      860,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      2035,\n      859,\n      0,\n      863,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2036,\n      848,\n      0,\n      864,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2037,\n      864,\n      0,\n      853,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2038,\n      847,\n      0,\n      856,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2040,\n      848,\n      0,\n      835,\n      0,\n      \"*\"\n    ],\n    [\n      2043,\n      857,\n      0,\n      865,\n      0,\n      \"*\"\n    ],\n    [\n      2044,\n      865,\n      0,\n      847,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2045,\n      836,\n      0,\n      866,\n      0,\n      \"*\"\n    ],\n    [\n      2046,\n      866,\n      0,\n      853,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      2047,\n      866,\n      0,\n      837,\n      0,\n      \"*\"\n    ],\n    [\n      2048,\n      858,\n      0,\n      825,\n      0,\n      \"*\"\n    ],\n    [\n      2051,\n      835,\n      0,\n      844,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2053,\n      868,\n      0,\n      838,\n      0,\n      \"*\"\n    ],\n    [\n      2054,\n      868,\n      0,\n      802,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2055,\n      859,\n      0,\n      869,\n      0,\n      \"*\"\n    ],\n    [\n      2056,\n      869,\n      0,\n      868,\n      0,\n      \"*\"\n    ],\n    [\n      2057,\n      835,\n      0,\n      870,\n      0,\n      \"*\"\n    ],\n    [\n      2058,\n      870,\n      0,\n      841,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2060,\n      873,\n      0,\n      845,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2061,\n      873,\n      0,\n      850,\n      0,\n      \"*\"\n    ],\n    [\n      2062,\n      845,\n      0,\n      874,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2063,\n      679,\n      0,\n      875,\n      1,\n      \"INT\"\n    ],\n    [\n      2064,\n      680,\n      0,\n      875,\n      2,\n      \"INT\"\n    ],\n    [\n      2065,\n      641,\n      0,\n      875,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2066,\n      875,\n      0,\n      876,\n      0,\n      \"KPS_DATA_3D\"\n    ],\n    [\n      2067,\n      876,\n      0,\n      873,\n      0,\n      \"KPS_DATA\"\n    ]\n  ],\n  \"groups\": [\n    {\n      \"title\": \"Enhance face\",\n      \"bounding\": [\n        4511,\n        -990,\n        3383,\n        1704\n      ],\n      \"color\": \"#88A\",\n      \"font_size\": 24,\n      \"flags\": {}\n    },\n    {\n      \"title\": \"Latent upscale\",\n      \"bounding\": [\n        2071,\n        -847,\n        2044,\n        1475\n      ],\n      \"color\": \"#3f789e\",\n      \"font_size\": 24,\n      \"flags\": {}\n    }\n  ],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.4177248169415962,\n      \"offset\": [\n        1285.377823150568,\n        1786.0416007980189\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/prop2image_latent_upscale_with_3d_and_2d_randomizer_with_rotation.json",
    "content": "{\n  \"last_node_id\": 895,\n  \"last_link_id\": 2096,\n  \"nodes\": [\n    {\n      \"id\": 650,\n      \"type\": \"LoadInsightface\",\n      \"pos\": {\n        \"0\": -975,\n        \"1\": -570\n      },\n      \"size\": {\n        \"0\": 308.15679931640625,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 0,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 642,\n      \"type\": \"FaceEmbed\",\n      \"pos\": {\n        \"0\": -549,\n        \"1\": -384\n      },\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1460\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1897\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 797,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -181,\n        \"1\": -270\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1901\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1900\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 798,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -233,\n        \"1\": -459\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1904\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1905\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 774,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": {\n        \"0\": -979,\n        \"1\": -451\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1913\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1896\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 813,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -158,\n        \"1\": 348\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1929\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1930\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 814,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5659.376953125,\n        \"1\": 361.3683776855469\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1930\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1931\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 812,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5289.376953125,\n        \"1\": 271.3683776855469\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1932\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1925,\n            1984\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 811,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -341,\n        \"1\": 262\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1922\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1932\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 825,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5979.376953125,\n        \"1\": -298.6316223144531\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 46,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2048\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1953\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 829,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6809.376953125,\n        \"1\": 441.3683776855469\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 51,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1959\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1960\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 806,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": {\n        \"0\": 6409.376953125,\n        \"1\": -268.6316223144531\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 81,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1951\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1961\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1954\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 821,\n      \"type\": \"VAEEncode\",\n      \"pos\": {\n        \"0\": 6199.376953125,\n        \"1\": -268.6316223144531\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 79,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 1947\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1950\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1951\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 832,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 7049.376953125,\n        \"1\": -628.6316528320312\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 76,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1966,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1968\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 833,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 7049.376953125,\n        \"1\": -608.6316528320312\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 77,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1967,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            1969\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 837,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5689.376953125,\n        \"1\": 541.3683471679688\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2047\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1976\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 836,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -470,\n        \"1\": 525\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1974\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2045\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 827,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 7019.376953125,\n        \"1\": -278.6316223144531\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 85,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1957\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1960\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1958,\n            1962\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 810,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 5419.376953125,\n        \"1\": 11.368349075317383\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1984\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1928\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 170,\n        \"1\": -457\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1905\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1800,\n            2010\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"man in the city, high quality\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 842,\n      \"type\": \"KpsScale\",\n      \"pos\": {\n        \"0\": 5919.376953125,\n        \"1\": -388.6316223144531\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 80,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1998\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1996,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1997,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1999\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScale\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": {\n        \"0\": -984,\n        \"1\": -248\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1802,\n            1974\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 796,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": -85\n      },\n      \"size\": {\n        \"0\": 367.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1896\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1897\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1898,\n            1901,\n            1929,\n            2016\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 801,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 150,\n        \"1\": -329\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1911\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2019,\n            2023\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 677,\n      \"type\": \"EmptyLatentImage\",\n      \"pos\": {\n        \"0\": 605,\n        \"1\": 72\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 106\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1576,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1577,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2022\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"EmptyLatentImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        1\n      ]\n    },\n    {\n      \"id\": 775,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 543,\n        \"1\": -301\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 42,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1800\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1801\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1900\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1802\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2005\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2020\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2021\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 793,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": {\n        \"0\": -214,\n        \"1\": -154\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1893\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1913\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1898\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1911\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 822,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": -559,\n        \"1\": 413\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1948\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2029\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 860,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1240,\n        \"1\": 425\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2029\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2030,\n            2034\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 861,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3263.10205078125,\n        \"1\": 409.437744140625\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2030\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2031,\n            2033\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 850,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1331,\n        \"1\": -513\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2061\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2009\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 865,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 1672,\n        \"1\": -591\n      },\n      \"size\": [\n        90.4,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 53,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2043\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2044\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 862,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5599.376953125,\n        \"1\": 431.3683776855469\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2031\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            2032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 823,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5909.376953125,\n        \"1\": 431.3683776855469\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 45,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2032\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1950,\n            1959\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 851,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2231.101806640625,\n        \"1\": -439.562255859375\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2010\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2012\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 852,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2204.1015625,\n        \"1\": -129.56224060058594\n      },\n      \"size\": [\n        140.8,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2011\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2013\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 855,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2195.1015625,\n        \"1\": -114.56224822998047\n      },\n      \"size\": [\n        182.79999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2016\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"FACE_CONDITIONING\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            2017\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 859,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 3441.10205078125,\n        \"1\": -287.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {},\n      \"order\": 65,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2027\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2033\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2035,\n            2055\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 858,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2687.10205078125,\n        \"1\": -327.562255859375\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2023\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            2024,\n            2048\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 864,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 2418.10205078125,\n        \"1\": -413.562255859375\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 48,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2036\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2037\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 849,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": 2083.10302734375,\n        \"1\": -683.562255859375\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"FLOAT\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            2006,\n            2007\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1.4000000000000001,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 853,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 2570.10205078125,\n        \"1\": -153.562255859375\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 54,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2012\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2013\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 2017\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 2046\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2037\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2025\n          ],\n          \"slot_index\": 0\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            2026\n          ],\n          \"slot_index\": 1\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 809,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 5419.376953125,\n        \"1\": -138.63165283203125\n      },\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1925\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1927\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 828,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 7029.376953125,\n        \"1\": -218.6316680908203\n      },\n      \"size\": {\n        \"0\": 402.61297607421875,\n        \"1\": 261.80877685546875\n      },\n      \"flags\": {},\n      \"order\": 86,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1958\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 843,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 6059.376953125,\n        \"1\": -388.6316223144531\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 82,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 1999\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2000\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 838,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6879.376953125,\n        \"1\": -358.6316223144531\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 72,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2053\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1983\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 868,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5259.376953125,\n        \"1\": -378.6316223144531\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 70,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2078\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2053,\n            2054\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 863,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 3694,\n        \"1\": -276\n      },\n      \"size\": {\n        \"0\": 371.20855712890625,\n        \"1\": 519.438720703125\n      },\n      \"flags\": {},\n      \"order\": 66,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2035\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 847,\n      \"type\": \"LatentUpscaleBy\",\n      \"pos\": {\n        \"0\": 2599,\n        \"1\": -557\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 59,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2044\n        },\n        {\n          \"name\": \"scale_by\",\n          \"type\": \"FLOAT\",\n          \"link\": 2006,\n          \"widget\": {\n            \"name\": \"scale_by\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2038\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LatentUpscaleBy\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        1.4000000000000001\n      ]\n    },\n    {\n      \"id\": 803,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6039.376953125,\n        \"1\": -718.6316528320312\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 74,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1943\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1947\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 805,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6239.376953125,\n        \"1\": -698.6316528320312\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 75,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1918\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1961\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 807,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": {\n        \"0\": 6199.376953125,\n        \"1\": -138.63165283203125\n      },\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 83,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1927\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1928\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1931\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1976\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2000\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1955\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1956\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        1\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": {\n        \"0\": 167,\n        \"1\": -137\n      },\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1902\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1801,\n            2011\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"ugly, deformed\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": {\n        \"0\": 1412,\n        \"1\": -302\n      },\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 52,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 2018\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 2034\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1908\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      },\n      \"widgets_values\": []\n    },\n    {\n      \"id\": 866,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 2259,\n        \"1\": 504\n      },\n      \"size\": [\n        132.39999999999998,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2045\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            2046,\n            2047\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 679,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -550,\n        \"1\": -21\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1576,\n            2063\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE HEIGHT\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 680,\n      \"type\": \"PrimitiveNode\",\n      \"pos\": {\n        \"0\": -545,\n        \"1\": 109\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 82\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"INT\",\n          \"type\": \"INT\",\n          \"links\": [\n            1577,\n            2064\n          ],\n          \"slot_index\": 0,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"title\": \"IMAGE WIDTH\",\n      \"properties\": {\n        \"Run widget replace on values\": false\n      },\n      \"widgets_values\": [\n        1024,\n        \"fixed\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 641,\n      \"type\": \"LoadImage\",\n      \"pos\": {\n        \"0\": -578,\n        \"1\": -753\n      },\n      \"size\": {\n        \"0\": 235.36587524414062,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1460,\n            2065\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 873,\n      \"type\": \"Kps2dRandomizer\",\n      \"pos\": {\n        \"0\": 190,\n        \"1\": -900\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 250\n      },\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2067\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2060,\n            2061\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps2dRandomizer\"\n      },\n      \"widgets_values\": [\n        320005400209870,\n        \"randomize\",\n        0,\n        0,\n        0.9,\n        1.2,\n        500,\n        50,\n        100\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 845,\n      \"type\": \"KpsMaker\",\n      \"pos\": {\n        \"0\": 299,\n        \"1\": -533\n      },\n      \"size\": {\n        \"0\": 279.5999755859375,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2060\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2005,\n            2062\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsMaker\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 874,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 644,\n        \"1\": -1104\n      },\n      \"size\": {\n        \"0\": 357.7528991699219,\n        \"1\": 273.61285400390625\n      },\n      \"flags\": {},\n      \"order\": 43,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2062\n        }\n      ],\n      \"outputs\": [],\n      \"title\": \"Randomized KPS\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 824,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 6679.376953125,\n        \"1\": -268.6316223144531\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 474\n      },\n      \"flags\": {},\n      \"order\": 84,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1953\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1955\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1956\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1954\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1957\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        530821850570197,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 856,\n      \"type\": \"KSampler\",\n      \"pos\": {\n        \"0\": 2993.10205078125,\n        \"1\": -330.562255859375\n      },\n      \"size\": {\n        \"0\": 377.1995544433594,\n        \"1\": 577.224609375\n      },\n      \"flags\": {},\n      \"order\": 62,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2024\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2025\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2026\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2038\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        945295579210304,\n        \"randomize\",\n        20,\n        4,\n        \"euler\",\n        \"normal\",\n        0.6\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 857,\n      \"type\": \"KSamplerAdvanced\",\n      \"pos\": {\n        \"0\": 1010,\n        \"1\": -329\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 546\n      },\n      \"flags\": {},\n      \"order\": 47,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 2019\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2020\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 2021\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 2022\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            2018,\n            2043\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSamplerAdvanced\"\n      },\n      \"widgets_values\": [\n        \"enable\",\n        236272004051104,\n        \"randomize\",\n        50,\n        4,\n        \"euler\",\n        \"normal\",\n        0,\n        25,\n        \"disable\"\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 877,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 10,\n        \"1\": 10\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"*\",\n          \"type\": \"*\",\n          \"links\": null\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 794,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": {\n        \"0\": -981,\n        \"1\": -155\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1893\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1902,\n            1904,\n            1922\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1948\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 802,\n      \"type\": \"PreprocessImage\",\n      \"pos\": {\n        \"0\": 5399.376953125,\n        \"1\": -718.6316528320312\n      },\n      \"size\": {\n        \"0\": 342.5999755859375,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 73,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2054\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 2003\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": null,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1943\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1918\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1966,\n            1989\n          ],\n          \"slot_index\": 3,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1967,\n            1990\n          ],\n          \"slot_index\": 4,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1963,\n            1991\n          ],\n          \"slot_index\": 5,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1964,\n            1992\n          ],\n          \"slot_index\": 6,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1996\n          ],\n          \"slot_index\": 7,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1997\n          ],\n          \"slot_index\": 8,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        50\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 841,\n      \"type\": \"KpsCrop\",\n      \"pos\": {\n        \"0\": 5769.376953125,\n        \"1\": -388.6316223144531\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 78,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2058\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1989,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1990,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1991,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1992,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            1998\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsCrop\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        1024,\n        1024\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 844,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 4949.376953125,\n        \"1\": -698.6316528320312\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 64,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2076\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            2003\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        3\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 869,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 3721,\n        \"1\": -398\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 67,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2055\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2077,\n            2084\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 848,\n      \"type\": \"KpsScaleBy\",\n      \"pos\": {\n        \"0\": 2327,\n        \"1\": -499\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 44,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2009\n        },\n        {\n          \"name\": \"scale\",\n          \"type\": \"FLOAT\",\n          \"link\": 2007,\n          \"widget\": {\n            \"name\": \"scale\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2036,\n            2079,\n            2089,\n            2090\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsScaleBy\"\n      },\n      \"widgets_values\": [\n        1.4000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 876,\n      \"type\": \"Kps3dRandomizer\",\n      \"pos\": {\n        \"0\": 190,\n        \"1\": -1110\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 154\n      },\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data_3d\",\n          \"type\": \"KPS_DATA_3D\",\n          \"link\": 2066\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2067\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps3dRandomizer\"\n      },\n      \"widgets_values\": [\n        791399708832399,\n        \"randomize\",\n        10,\n        40,\n        70\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 871,\n      \"type\": \"Note\",\n      \"pos\": {\n        \"0\": 1390,\n        \"1\": -164\n      },\n      \"size\": {\n        \"0\": 210,\n        \"1\": 291.76165771484375\n      },\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [],\n      \"properties\": {},\n      \"widgets_values\": [\n        \"Image should be undercooked here,\\nit runs just enough to set up the scene.\\n\\nIf you want to end generation here set \\\"end_at_step\\\" to \\\"steps\\\"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 800,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 1544,\n        \"1\": -218\n      },\n      \"size\": {\n        \"0\": 351.6155090332031,\n        \"1\": 362.6221008300781\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 58,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1908\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 889,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 7129.376953125,\n        \"1\": -918.6316528320312\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 71,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2086\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2087,\n            2094\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 892,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 6969.376953125,\n        \"1\": -998.6316528320312\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 57,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2091\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2092\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 886,\n      \"type\": \"ComposeRotated\",\n      \"pos\": {\n        \"0\": 7909.37841796875,\n        \"1\": -918.6316528320312\n      },\n      \"size\": {\n        \"0\": 289.79998779296875,\n        \"1\": 46\n      },\n      \"flags\": {},\n      \"order\": 90,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"original_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2087\n        },\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2088\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2095\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ComposeRotated\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 893,\n      \"type\": \"MaskFromKps\",\n      \"pos\": {\n        \"0\": 7419.376953125,\n        \"1\": -968.6316528320312\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 61,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2092\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            2093\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskFromKps\"\n      },\n      \"widgets_values\": [\n        4\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 831,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 7339.376953125,\n        \"1\": -588.6316528320312\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 88,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1983\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 1982\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 1968,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 1969,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2082\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 830,\n      \"type\": \"ImageScale\",\n      \"pos\": {\n        \"0\": 7209.376953125,\n        \"1\": -528.6316528320312\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 87,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1962\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 1963,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 1964,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1982\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"nearest-exact\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 884,\n      \"type\": \"RotateImage\",\n      \"pos\": {\n        \"0\": 7549.376953125,\n        \"1\": -738.6316528320312\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 89,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2082\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 2081,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2088\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        0,\n        false\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 894,\n      \"type\": \"PreviewImage\",\n      \"pos\": {\n        \"0\": 7459.376953125,\n        \"1\": -218.6316680908203\n      },\n      \"size\": {\n        \"0\": 1107.3201904296875,\n        \"1\": 1167.626708984375\n      },\n      \"flags\": {},\n      \"order\": 92,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 2096\n        }\n      ],\n      \"outputs\": [],\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"widgets_values\": [],\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 880,\n      \"type\": \"RotateImage\",\n      \"pos\": {\n        \"0\": 5009.376953125,\n        \"1\": -348.6316223144531\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 68,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2077\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 2069,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"rotated_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2078\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"RotateImage\"\n      },\n      \"widgets_values\": [\n        0,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 835,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4865.376953125,\n        \"1\": -563.6316528320312\n      },\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 60,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2075\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2057,\n            2076\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 885,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 5041.376953125,\n        \"1\": -793.6316528320312\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 56,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2080,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"FLOAT\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            2081\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 878,\n      \"type\": \"AngleFromKps\",\n      \"pos\": {\n        \"0\": 4522,\n        \"1\": -784\n      },\n      \"size\": {\n        \"0\": 283.8384704589844,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 49,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2079\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"links\": [\n            2069,\n            2070,\n            2080\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"AngleFromKps\"\n      },\n      \"widgets_values\": [\n        \"any\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 895,\n      \"type\": \"Note\",\n      \"pos\": {\n        \"0\": 4735,\n        \"1\": -917\n      },\n      \"size\": {\n        \"0\": 253.791748046875,\n        \"1\": 139.83102416992188\n      },\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [],\n      \"outputs\": [],\n      \"properties\": {},\n      \"widgets_values\": [\n        \"Change Rotation mode here\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 891,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4281,\n        \"1\": -1019\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 50,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2090\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2091\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 887,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4286,\n        \"1\": -939\n      },\n      \"size\": [\n        82,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 69,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2084\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2086\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 879,\n      \"type\": \"KpsRotate\",\n      \"pos\": {\n        \"0\": 4506,\n        \"1\": -565\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 55,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"link\": 2089\n        },\n        {\n          \"name\": \"angle\",\n          \"type\": \"FLOAT\",\n          \"link\": 2070,\n          \"widget\": {\n            \"name\": \"angle\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2075\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KpsRotate\"\n      },\n      \"widgets_values\": [\n        0,\n        true\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 870,\n      \"type\": \"Reroute\",\n      \"pos\": {\n        \"0\": 4977,\n        \"1\": -418\n      },\n      \"size\": [\n        107.2,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 63,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 2057\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"KPS_DATA\",\n          \"type\": \"KPS_DATA\",\n          \"links\": [\n            2058\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": true,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 890,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": {\n        \"0\": 8235,\n        \"1\": -673\n      },\n      \"size\": {\n        \"0\": 315,\n        \"1\": 146\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 91,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 2094\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 2095\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 2093,\n          \"shape\": 7\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            2096\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 875,\n      \"type\": \"Kps3dFromImage\",\n      \"pos\": {\n        \"0\": -150,\n        \"1\": -1110\n      },\n      \"size\": {\n        \"0\": 282.88043212890625,\n        \"1\": 452\n      },\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 2065,\n          \"shape\": 7\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 2063,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 2064,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"kps_data_3d\",\n          \"type\": \"KPS_DATA_3D\",\n          \"links\": [\n            2066\n          ],\n          \"slot_index\": 0\n        },\n        {\n          \"name\": \"kps_data\",\n          \"type\": \"KPS_DATA\",\n          \"links\": null\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"Kps3dFromImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        {\n          \"array\": [\n            [\n              455.93826177816265,\n              135.74188019160567,\n              -175.3184183546636\n            ],\n            [\n              532.8012046875956,\n              134.34553125344215,\n              -178.85594444475473\n            ],\n            [\n              493.5075496028185,\n              184.87903772930446,\n              -210.66604318438232\n            ],\n            [\n              465.9663057996927,\n              214.78316229722586,\n              -190.96613998861835\n            ],\n            [\n              527.9787915888902,\n              214.90571132350746,\n              -193.018352114209\n            ]\n          ],\n          \"opacities\": [\n            1,\n            1,\n            1,\n            1,\n            1\n          ],\n          \"width\": 1024,\n          \"height\": 1024,\n          \"jawline\": [\n            [\n              411.7260583611601,\n              147.05255023658785,\n              -84.7085041342237\n            ],\n            [\n              414.9002314289735,\n              170.77021601327752,\n              -90.81767394113861\n            ],\n            [\n              418.6347254298535,\n              195.00176479049418,\n              -98.91880999782092\n            ],\n            [\n              423.36647322524465,\n              217.85928000852707,\n              -111.2030872806301\n            ],\n            [\n              430.41671305978315,\n              237.24471265614872,\n              -133.42087883243875\n            ],\n            [\n              442.14981016309883,\n              250.61728822073567,\n              -152.61183045125603\n            ],\n            [\n              455.7550594550032,\n              259.4275224714234,\n              -168.43349062170628\n            ],\n            [\n              470.8809816149588,\n              264.5877481328971,\n              -188.01250272777727\n            ],\n            [\n              497.3739673481192,\n              268.71749703144457,\n              -200.302485922294\n            ],\n            [\n              524.6565915602991,\n              262.79525684526317,\n              -189.45694953673942\n            ],\n            [\n              544.303419102688,\n              254.93591913398424,\n              -169.90656380213005\n            ],\n            [\n              560.7262471923838,\n              242.85405347200208,\n              -151.81017910191875\n            ],\n            [\n              570.7560661175205,\n              230.1487125795386,\n              -132.8405256918502\n            ],\n            [\n              576.0818741499877,\n              215.1589093907099,\n              -116.19439052523256\n            ],\n            [\n              580.8063448405924,\n              192.60714552211815,\n              -102.36937589587578\n            ],\n            [\n              583.4734763545072,\n              165.28642542434883,\n              -97.8671312045414\n            ],\n            [\n              586.5136603355214,\n              142.49640494982324,\n              -94.30836072844276\n            ]\n          ],\n          \"eyebrow_left\": [\n            [\n              428.53678356630064,\n              121.16577476246434,\n              -161.06855634387378\n            ],\n            [\n              436.1949117505585,\n              115.40853606973228,\n              -171.95529469632896\n            ],\n            [\n              445.722465226046,\n              112.80623694391495,\n              -179.0134852922498\n            ],\n            [\n              457.8667752239997,\n              113.15820032907256,\n              -184.03046211413218\n            ],\n            [\n              470.67748084873625,\n              116.16709760015145,\n              -187.80730975232115\n            ]\n          ],\n          \"eyebrow_right\": [\n            [\n              514.1927280259512,\n              113.29741731376708,\n              -190.61048762766953\n            ],\n            [\n              525.8892137085119,\n              109.171105274021,\n              -188.51662577540498\n            ],\n            [\n              537.5671435806419,\n              107.22698881193472,\n              -185.04321001035308\n            ],\n            [\n              548.4257779480375,\n              109.13773708621984,\n              -179.30524314030254\n            ],\n            [\n              557.1900906017803,\n              114.16516768695715,\n              -172.32034396171218\n            ]\n          ],\n          \"nose_bridge\": [\n            [\n              493.7374802972895,\n              136.39347957650546,\n              -194.5102695268997\n            ],\n            [\n              493.48921968921013,\n              147.55291169873126,\n              -199.3650927688463\n            ],\n            [\n              493.2143032560593,\n              156.30713967289168,\n              -204.43279552902652\n            ],\n            [\n              492.8814281524146,\n              163.8049779260003,\n              -210.66604318438232\n            ]\n          ],\n          \"nose_lower\": [\n            [\n              475.4247025764783,\n              185.33977043456235,\n              -192.50507822832841\n            ],\n            [\n              484.6788563546241,\n              184.75674687082056,\n              -197.95465149943493\n            ],\n            [\n              493.5075496028185,\n              184.87903772930446,\n              -202.13728950005063\n            ],\n            [\n              501.76730556771093,\n              187.08575924770773,\n              -200.12580536142025\n            ],\n            [\n              512.4235363820234,\n              183.8328772726921,\n              -194.47887692782862\n            ]\n          ],\n          \"eye_left\": [\n            [\n              441.19852637199466,\n              136.88887130855113,\n              -167.25896832950173\n            ],\n            [\n              449.85495715744,\n              130.83228705484885,\n              -176.8816364689355\n            ],\n            [\n              461.2791403557977,\n              129.9918863326855,\n              -178.32930029068427\n            ],\n            [\n              472.0685534825423,\n              136.51178496961865,\n              -176.74648159317667\n            ],\n            [\n              461.46011598170577,\n              140.22041378430666,\n              -177.97111667516035\n            ],\n            [\n              449.76827731949606,\n              140.0060538351104,\n              -174.72299466890766\n            ]\n          ],\n          \"eye_right\": [\n            [\n              516.8173263952606,\n              136.28629153416364,\n              -179.09774480709376\n            ],\n            [\n              527.4857233670203,\n              129.3174713686991,\n              -181.04383383250638\n            ],\n            [\n              539.0480586079088,\n              129.3110978512031,\n              -180.19699505089773\n            ],\n            [\n              548.598330849559,\n              134.85976923469062,\n              -172.09711756222737\n            ],\n            [\n              538.0621157900167,\n              138.36467138633373,\n              -179.7639750451314\n            ],\n            [\n              526.7958021997085,\n              137.93387001007528,\n              -180.93600642147902\n            ]\n          ],\n          \"mouth_outer\": [\n            [\n              465.9663057996927,\n              214.78316229722586,\n              -190.96613998861835\n            ],\n            [\n              475.4775301620008,\n              207.3459127990462,\n              -200.90158950762958\n            ],\n            [\n              484.01217028906945,\n              202.4984574240024,\n              -205.59297236452548\n            ],\n            [\n              494.1824970378867,\n              204.38229170541928,\n              -207.63840405579907\n            ],\n            [\n              503.36739730440695,\n              202.37264902928055,\n              -206.37752917350335\n            ],\n            [\n              512.7268190019021,\n              206.4529910656196,\n              -202.69794675718143\n            ],\n            [\n              527.9787915888902,\n              214.90571132350746,\n              -193.018352114209\n            ],\n            [\n              514.7900637669557,\n              220.84242504182558,\n              -202.2980171062937\n            ],\n            [\n              504.80410109638575,\n              221.705592936613,\n              -206.94778452442628\n            ],\n            [\n              495.2913922692431,\n              221.49729993065327,\n              -207.95714321195675\n            ],\n            [\n              485.76083759311194,\n              221.69526622472105,\n              -206.82339126236639\n            ],\n            [\n              474.86422028853826,\n              219.94082241621436,\n              -200.86574855639492\n            ]\n          ],\n          \"mouth_inner\": [\n            [\n              469.31774333132773,\n              213.72599743825364,\n              -193.23393432657062\n            ],\n            [\n              484.8072625628067,\n              210.90414273631947,\n              -201.67408705676309\n            ],\n            [\n              494.6904099081013,\n              210.36629853710528,\n              -203.3730827757579\n            ],\n            [\n              503.2566110483902,\n              210.28107089302134,\n              -202.68430268994098\n            ],\n            [\n              520.4040838741352,\n              213.5383901270529,\n              -195.56475892037878\n            ],\n            [\n              503.64654123523843,\n              211.62799683348885,\n              -205.9814453151741\n            ],\n            [\n              494.71009520264573,\n              211.90620490605534,\n              -207.00892289439247\n            ],\n            [\n              484.16436020557825,\n              212.87970726321436,\n              -205.6796612786808\n            ]\n          ],\n          \"rotateX\": 18,\n          \"rotateY\": 182,\n          \"rotateZ\": 0,\n          \"defaultKpsData\": \"{\\\"array\\\":[[259.0189223240886,206.00637784680464,-161.878141518296],[709.3234785408645,197.8258129982231,-182.60287642703724],[479.1200639261718,493.87833644249673,-368.9635836021195],[317.7686102999715,669.0728194129958,-253.5509305043247],[681.0711828557334,669.7907776748775,-265.5738954793406]],\\\"height\\\":1024,\\\"width\\\":1024,\\\"rotateX\\\":0,\\\"rotateY\\\":0,\\\"rotateZ\\\":0,\\\"opacities\\\":[1,1,1,1,1],\\\"jawline\\\":[[0,272.2703805291043,368.9635836021195],[18.59601702137716,411.2212527934467,333.17277343242273],[40.47469613651369,553.1827287081389,285.71195110670936],[68.19582559735079,687.0943752944843,213.7440323555739],[109.49993131776831,800.6646903908388,83.58023187967251],[178.23873943733744,879.0084471759787,-28.850708505627438],[257.94562435102677,930.6235489955409,-121.54252320835153],[346.56143071735266,960.8549327874205,-236.24693113058848],[501.77162345594223,985.0492281741899,-308.24827818855186],[661.6079440970946,950.3535524961192,-244.70927923577125],[776.7096514044409,904.3093152307649,-130.17258002997417],[872.9234318664877,833.5272328741225,-24.15420273262737],[931.683518184544,759.0924965031143,86.98025344441623],[962.8849727708185,671.2741484511048,184.50228714745202],[990.5634690287446,539.1537580997029,265.4966758829751],[1006.1889632823313,379.0942512233561,291.8732524355998],[1024,245.57802523075014,312.7224484103779]],\\\"eyebrow_left\\\":[[98.48629087885193,120.61169429464823,-78.39476778799411],[143.351734263276,86.8826863171701,-142.17515007477272],[199.16927880702656,71.63701514406281,-183.5258356416079],[270.31719374740595,73.69900639704827,-212.91799050600852],[345.36921352198056,91.32674870131498,-235.04480006125783]],\\\"eyebrow_right\\\":[[600.3049904657246,74.5146145449765,-251.46732724243566],[668.8293091453716,50.340454129869954,-239.20035571528254],[737.2449178841147,38.95077182581002,-218.8512136523637],[800.8606518756158,50.14496529701001,-185.23511040155245],[852.2067202240371,79.59836403355236,-144.31380546869116]],\\\"nose_bridge\\\":[[480.4671218895442,209.82379831942703,-274.31435197247015],[479.0126774106356,275.20176771816944,-302.7565237489472],[477.4020687383591,326.48875457696914,-332.4458585061444],[475.4519069289294,370.4151331327517,-368.9635836021195]],\\\"nose_lower\\\":[[373.18099762049303,496.5775570099449,-262.5668603509639],[427.39681934800626,493.1618906667494,-294.4933984267684],[479.1200639261718,493.87833644249673,-318.9975466858585],[527.5101671858453,506.80650073630306,-307.21318821482834],[589.9401120480451,487.7493645047273,-274.1304372034271]],\\\"eye_left\\\":[[172.66560615392797,212.72607015040668,-114.66153843808252],[223.37964435897322,177.24333450019273,-171.03631595934817],[290.3086682884536,172.31981401147067,-179.51751105972022],[353.5188669351921,210.5168950904759,-170.2445058354395],[291.36892106860694,232.24404200103095,-177.41907834393618],[222.87182713937767,230.98820585763428,-158.38982857546176]],\\\"eye_right\\\":[[615.6813026286832,209.19583298253698,-184.0194733036943],[678.1825233999625,168.3687275767284,-195.4207119471242],[745.920916472067,168.33138807528752,-190.4594738354277],[801.8715597956372,200.83849631700764,-143.00602487961916],[740.144731925126,221.372102606823,-187.92260920145966],[674.1405932667781,218.84823590057175,-194.78900084379217]],\\\"mouth_outer\\\":[[317.7686102999715,669.0728194129958,-253.5509305043247],[373.4904900957268,625.5014024468599,-311.758149966949],[423.49101296691,597.1023956067004,-339.2427998574267],[483.0742698635661,608.1389123983984,-351.2260413928955],[536.8843671855499,596.365342207373,-343.8391565973692],[591.7169051343292,620.2701855601886,-322.28217914729674],[681.0711828557334,669.7907776748775,-265.5738954793406],[603.8045052589911,704.5712471068532,-319.9391756511496],[545.3013525230012,709.6281499665452,-347.1800198665548],[489.57077593197357,708.4078572473047,-353.0933872012854],[433.7356487369116,709.5676505211727,-346.45125707725856],[369.89739022289973,699.2891728739157,-311.5481743528338]],\\\"mouth_inner\\\":[[337.4031381133213,662.8793777537512,-266.83689229927944],[428.14909213906014,646.3474316537943,-316.28385706160196],[486.0498972720599,643.1964503841036,-326.23748990854693],[536.2353215731629,642.6971408990134,-322.2022448459132],[636.6944615534592,661.7802729860227,-280.4921193125181],[538.5197428182757,650.5881591832574,-341.51868382728924],[486.1652243398013,652.2180520537465,-347.5382013973857],[424.3826235430874,657.9213536750901,-339.75067025036293]]}\"\n        },\n        -1.0407629248871373,\n        null,\n        \"\",\n        \"\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    }\n  ],\n  \"links\": [\n    [\n      1460,\n      641,\n      0,\n      642,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1491,\n      650,\n      0,\n      642,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1576,\n      679,\n      0,\n      677,\n      0,\n      \"INT\"\n    ],\n    [\n      1577,\n      680,\n      0,\n      677,\n      1,\n      \"INT\"\n    ],\n    [\n      1800,\n      252,\n      0,\n      775,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1801,\n      287,\n      0,\n      775,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1802,\n      636,\n      0,\n      775,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1893,\n      794,\n      0,\n      793,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1896,\n      774,\n      1,\n      796,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1897,\n      642,\n      0,\n      796,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1898,\n      796,\n      0,\n      793,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1900,\n      797,\n      0,\n      775,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1901,\n      796,\n      0,\n      797,\n      0,\n      \"*\"\n    ],\n    [\n      1902,\n      794,\n      1,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1904,\n      794,\n      1,\n      798,\n      0,\n      \"*\"\n    ],\n    [\n      1905,\n      798,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1908,\n      248,\n      0,\n      800,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1911,\n      793,\n      0,\n      801,\n      0,\n      \"*\"\n    ],\n    [\n      1913,\n      774,\n      0,\n      793,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1918,\n      802,\n      1,\n      805,\n      0,\n      \"*\"\n    ],\n    [\n      1922,\n      794,\n      1,\n      811,\n      0,\n      \"*\"\n    ],\n    [\n      1925,\n      812,\n      0,\n      809,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1927,\n      809,\n      0,\n      807,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1928,\n      810,\n      0,\n      807,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1929,\n      796,\n      0,\n      813,\n      0,\n      \"*\"\n    ],\n    [\n      1930,\n      813,\n      0,\n      814,\n      0,\n      \"*\"\n    ],\n    [\n      1931,\n      814,\n      0,\n      807,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1932,\n      811,\n      0,\n      812,\n      0,\n      \"*\"\n    ],\n    [\n      1943,\n      802,\n      0,\n      803,\n      0,\n      \"*\"\n    ],\n    [\n      1947,\n      803,\n      0,\n      821,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1948,\n      794,\n      2,\n      822,\n      0,\n      \"*\"\n    ],\n    [\n      1950,\n      823,\n      0,\n      821,\n      1,\n      \"VAE\"\n    ],\n    [\n      1951,\n      821,\n      0,\n      806,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1953,\n      825,\n      0,\n      824,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1954,\n      806,\n      0,\n      824,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1955,\n      807,\n      0,\n      824,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1956,\n      807,\n      1,\n      824,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1957,\n      824,\n      0,\n      827,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1958,\n      827,\n      0,\n      828,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1959,\n      823,\n      0,\n      829,\n      0,\n      \"*\"\n    ],\n    [\n      1960,\n      829,\n      0,\n      827,\n      1,\n      \"VAE\"\n    ],\n    [\n      1961,\n      805,\n      0,\n      806,\n      1,\n      \"MASK\"\n    ],\n    [\n      1962,\n      827,\n      0,\n      830,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1963,\n      802,\n      5,\n      830,\n      1,\n      \"INT\"\n    ],\n    [\n      1964,\n      802,\n      6,\n      830,\n      2,\n      \"INT\"\n    ],\n    [\n      1966,\n      802,\n      3,\n      832,\n      0,\n      \"*\"\n    ],\n    [\n      1967,\n      802,\n      4,\n      833,\n      0,\n      \"*\"\n    ],\n    [\n      1968,\n      832,\n      0,\n      831,\n      3,\n      \"INT\"\n    ],\n    [\n      1969,\n      833,\n      0,\n      831,\n      4,\n      \"INT\"\n    ],\n    [\n      1974,\n      636,\n      0,\n      836,\n      0,\n      \"*\"\n    ],\n    [\n      1976,\n      837,\n      0,\n      807,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1982,\n      830,\n      0,\n      831,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1983,\n      838,\n      0,\n      831,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1984,\n      812,\n      0,\n      810,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1989,\n      802,\n      3,\n      841,\n      1,\n      \"INT\"\n    ],\n    [\n      1990,\n      802,\n      4,\n      841,\n      2,\n      \"INT\"\n    ],\n    [\n      1991,\n      802,\n      5,\n      841,\n      3,\n      \"INT\"\n    ],\n    [\n      1992,\n      802,\n      6,\n      841,\n      4,\n      \"INT\"\n    ],\n    [\n      1996,\n      802,\n      7,\n      842,\n      1,\n      \"INT\"\n    ],\n    [\n      1997,\n      802,\n      8,\n      842,\n      2,\n      \"INT\"\n    ],\n    [\n      1998,\n      841,\n      0,\n      842,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      1999,\n      842,\n      0,\n      843,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2000,\n      843,\n      0,\n      807,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2003,\n      844,\n      0,\n      802,\n      1,\n      \"MASK\"\n    ],\n    [\n      2005,\n      845,\n      0,\n      775,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2006,\n      849,\n      0,\n      847,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2007,\n      849,\n      0,\n      848,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2009,\n      850,\n      0,\n      848,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2010,\n      252,\n      0,\n      851,\n      0,\n      \"*\"\n    ],\n    [\n      2011,\n      287,\n      0,\n      852,\n      0,\n      \"*\"\n    ],\n    [\n      2012,\n      851,\n      0,\n      853,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      2013,\n      852,\n      0,\n      853,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2016,\n      796,\n      0,\n      855,\n      0,\n      \"*\"\n    ],\n    [\n      2017,\n      855,\n      0,\n      853,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      2018,\n      857,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2019,\n      801,\n      0,\n      857,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2020,\n      775,\n      0,\n      857,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2021,\n      775,\n      1,\n      857,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2022,\n      677,\n      0,\n      857,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2023,\n      801,\n      0,\n      858,\n      0,\n      \"*\"\n    ],\n    [\n      2024,\n      858,\n      0,\n      856,\n      0,\n      \"MODEL\"\n    ],\n    [\n      2025,\n      853,\n      0,\n      856,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      2026,\n      853,\n      1,\n      856,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      2027,\n      856,\n      0,\n      859,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2029,\n      822,\n      0,\n      860,\n      0,\n      \"*\"\n    ],\n    [\n      2030,\n      860,\n      0,\n      861,\n      0,\n      \"*\"\n    ],\n    [\n      2031,\n      861,\n      0,\n      862,\n      0,\n      \"*\"\n    ],\n    [\n      2032,\n      862,\n      0,\n      823,\n      0,\n      \"*\"\n    ],\n    [\n      2033,\n      861,\n      0,\n      859,\n      1,\n      \"VAE\"\n    ],\n    [\n      2034,\n      860,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      2035,\n      859,\n      0,\n      863,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2036,\n      848,\n      0,\n      864,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2037,\n      864,\n      0,\n      853,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      2038,\n      847,\n      0,\n      856,\n      3,\n      \"LATENT\"\n    ],\n    [\n      2043,\n      857,\n      0,\n      865,\n      0,\n      \"*\"\n    ],\n    [\n      2044,\n      865,\n      0,\n      847,\n      0,\n      \"LATENT\"\n    ],\n    [\n      2045,\n      836,\n      0,\n      866,\n      0,\n      \"*\"\n    ],\n    [\n      2046,\n      866,\n      0,\n      853,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      2047,\n      866,\n      0,\n      837,\n      0,\n      \"*\"\n    ],\n    [\n      2048,\n      858,\n      0,\n      825,\n      0,\n      \"*\"\n    ],\n    [\n      2053,\n      868,\n      0,\n      838,\n      0,\n      \"*\"\n    ],\n    [\n      2054,\n      868,\n      0,\n      802,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2055,\n      859,\n      0,\n      869,\n      0,\n      \"*\"\n    ],\n    [\n      2057,\n      835,\n      0,\n      870,\n      0,\n      \"*\"\n    ],\n    [\n      2058,\n      870,\n      0,\n      841,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2060,\n      873,\n      0,\n      845,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2061,\n      873,\n      0,\n      850,\n      0,\n      \"*\"\n    ],\n    [\n      2062,\n      845,\n      0,\n      874,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2063,\n      679,\n      0,\n      875,\n      1,\n      \"INT\"\n    ],\n    [\n      2064,\n      680,\n      0,\n      875,\n      2,\n      \"INT\"\n    ],\n    [\n      2065,\n      641,\n      0,\n      875,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2066,\n      875,\n      0,\n      876,\n      0,\n      \"KPS_DATA_3D\"\n    ],\n    [\n      2067,\n      876,\n      0,\n      873,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2069,\n      878,\n      0,\n      880,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2070,\n      878,\n      0,\n      879,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2075,\n      879,\n      0,\n      835,\n      0,\n      \"*\"\n    ],\n    [\n      2076,\n      835,\n      0,\n      844,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2077,\n      869,\n      0,\n      880,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2078,\n      880,\n      0,\n      868,\n      0,\n      \"*\"\n    ],\n    [\n      2079,\n      848,\n      0,\n      878,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2080,\n      878,\n      0,\n      885,\n      0,\n      \"*\"\n    ],\n    [\n      2081,\n      885,\n      0,\n      884,\n      1,\n      \"FLOAT\"\n    ],\n    [\n      2082,\n      831,\n      0,\n      884,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2084,\n      869,\n      0,\n      887,\n      0,\n      \"*\"\n    ],\n    [\n      2086,\n      887,\n      0,\n      889,\n      0,\n      \"*\"\n    ],\n    [\n      2087,\n      889,\n      0,\n      886,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2088,\n      884,\n      0,\n      886,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      2089,\n      848,\n      0,\n      879,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2090,\n      848,\n      0,\n      891,\n      0,\n      \"*\"\n    ],\n    [\n      2091,\n      891,\n      0,\n      892,\n      0,\n      \"*\"\n    ],\n    [\n      2092,\n      892,\n      0,\n      893,\n      0,\n      \"KPS_DATA\"\n    ],\n    [\n      2093,\n      893,\n      0,\n      890,\n      2,\n      \"MASK\"\n    ],\n    [\n      2094,\n      889,\n      0,\n      890,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      2095,\n      886,\n      0,\n      890,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      2096,\n      890,\n      0,\n      894,\n      0,\n      \"IMAGE\"\n    ]\n  ],\n  \"groups\": [\n    {\n      \"title\": \"Enhance face\",\n      \"bounding\": [\n        4430,\n        -1188,\n        4193,\n        2310\n      ],\n      \"color\": \"#88A\",\n      \"font_size\": 24,\n      \"flags\": {}\n    },\n    {\n      \"title\": \"Latent upscale\",\n      \"bounding\": [\n        2071,\n        -847,\n        2044,\n        1475\n      ],\n      \"color\": \"#3f789e\",\n      \"font_size\": 24,\n      \"flags\": {}\n    }\n  ],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 1.5863092971716108,\n      \"offset\": [\n        374.4669341811946,\n        1105.5680870320302\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/simple.json",
    "content": "{\n  \"last_node_id\": 651,\n  \"last_link_id\": 1489,\n  \"nodes\": [\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        670,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        910,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        144\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1437,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        164\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1438,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1440,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1418\n        }\n      ],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        2100,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1281\n        }\n      ],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": [\n        894,\n        510\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      }\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": [\n        751,\n        510\n      ],\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      }\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        206,\n        313\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1415\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": [\n        1438,\n        323\n      ],\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      }\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": [\n        1603,\n        186\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": [\n        1840,\n        149\n      ],\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1418\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1390,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 269,\n      \"type\": \"LoadInsightface\",\n      \"pos\": [\n        -457,\n        80\n      ],\n      \"size\": {\n        \"0\": 279.5220031738281,\n        \"1\": 41.10993957519531\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            947,\n            1431\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1708,\n        311\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        756,\n        293\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        890,\n        20\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        1440,\n        20\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1150,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        43\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1432\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        62\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1433\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1967,\n        51\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1260\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1281\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        104\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1435,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        124\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1436,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 632,\n      \"type\": \"PreprocessImage\",\n      \"pos\": [\n        335,\n        43\n      ],\n      \"size\": {\n        \"0\": 325.7662353515625,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1439\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1440\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1431\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1432\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1433\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1434\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1435\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1436\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1437\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1438\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        150\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 438,\n      \"type\": \"FaceEmbed\",\n      \"pos\": [\n        -70,\n        -43\n      ],\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 947\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1235\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1464\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": [\n        -148,\n        964\n      ],\n      \"size\": {\n        \"0\": 308.55364990234375,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1473\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        82\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1434\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1474\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        496,\n        480\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 644,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": [\n        190,\n        445\n      ],\n      \"size\": {\n        \"0\": 245.1999969482422,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1468\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1464\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1470\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 646,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": [\n        -151,\n        803\n      ],\n      \"size\": {\n        \"0\": 303.55364990234375,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1468\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": [\n        1097,\n        420\n      ],\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1489\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1475\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1476\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        421094154862615,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        330,\n        785\n      ],\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1471\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        328,\n        930\n      ],\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1488\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1472\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": [\n        1100,\n        -10\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 648,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": [\n        729,\n        610\n      ],\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1471\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1472\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1470\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1473\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1474\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1475\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1476\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        229,\n        784\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1487\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1488\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": [\n        -155,\n        614\n      ],\n      \"size\": {\n        \"0\": 311.5732421875,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1489\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1487\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 562,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -120,\n        -400\n      ],\n      \"size\": [\n        270,\n        314\n      ],\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1235\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -134,\n        42\n      ],\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1260,\n            1415,\n            1439\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1440\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"z19900074AMP,Luke-Skywalker-i-Yoda---Gwiezdne-wojny--Imperium-k.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      947,\n      269,\n      0,\n      438,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1235,\n      562,\n      0,\n      438,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1260,\n      253,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1281,\n      579,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1415,\n      253,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1418,\n      396,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1431,\n      269,\n      0,\n      632,\n      2,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1432,\n      632,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1433,\n      632,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1434,\n      632,\n      2,\n      481,\n      0,\n      \"*\"\n    ],\n    [\n      1435,\n      632,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1436,\n      632,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1437,\n      632,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1438,\n      632,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1439,\n      253,\n      0,\n      632,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1440,\n      253,\n      1,\n      632,\n      1,\n      \"MASK\"\n    ],\n    [\n      1464,\n      438,\n      0,\n      644,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1468,\n      646,\n      1,\n      644,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1470,\n      644,\n      0,\n      648,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1471,\n      252,\n      0,\n      648,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1472,\n      287,\n      0,\n      648,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1473,\n      636,\n      0,\n      648,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1474,\n      481,\n      0,\n      648,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1475,\n      648,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1476,\n      648,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1487,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1488,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1489,\n      241,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 1.228459735736783,\n      \"offset\": [\n        -136.4629761089401,\n        -318.2211074138637\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/simple_two_embeds.json",
    "content": "{\n  \"last_node_id\": 653,\n  \"last_link_id\": 1492,\n  \"nodes\": [\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        670,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        910,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        144\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1437,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        164\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1438,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1440,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 41,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1418\n        }\n      ],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        2100,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1281\n        }\n      ],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": [\n        894,\n        510\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      }\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": [\n        751,\n        510\n      ],\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      }\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        206,\n        313\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1415\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": [\n        1438,\n        323\n      ],\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      }\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": [\n        1603,\n        186\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": [\n        1840,\n        149\n      ],\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1418\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1390,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1708,\n        311\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        756,\n        293\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        890,\n        20\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        1440,\n        20\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1150,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        43\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1432\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        62\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1433\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1967,\n        51\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1260\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1281\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        104\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1435,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        124\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1436,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 632,\n      \"type\": \"PreprocessImage\",\n      \"pos\": [\n        335,\n        43\n      ],\n      \"size\": {\n        \"0\": 325.7662353515625,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1439\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1440\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1431\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1432\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1433\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1434\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1435\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1436\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1437\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1438\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        150\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": [\n        -148,\n        964\n      ],\n      \"size\": {\n        \"0\": 308.55364990234375,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1473\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        82\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1434\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1474\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 646,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": [\n        -151,\n        803\n      ],\n      \"size\": {\n        \"0\": 303.55364990234375,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1468\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        496,\n        484\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 438,\n      \"type\": \"FaceEmbed\",\n      \"pos\": [\n        -400,\n        -40\n      ],\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 947\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1235\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1489\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 644,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": [\n        410,\n        680\n      ],\n      \"size\": {\n        \"0\": 245.1999969482422,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1468\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1490\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1470\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 269,\n      \"type\": \"LoadInsightface\",\n      \"pos\": [\n        -457,\n        80\n      ],\n      \"size\": {\n        \"0\": 279.5220031738281,\n        \"1\": 41.10993957519531\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 2,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            947,\n            1431,\n            1491\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 652,\n      \"type\": \"FaceEmbed\",\n      \"pos\": [\n        -110,\n        -40\n      ],\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1491\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1488\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1489\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1490\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 653,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -130,\n        -410\n      ],\n      \"size\": {\n        \"0\": 238.0138702392578,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1488\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 562,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -440,\n        -410\n      ],\n      \"size\": {\n        \"0\": 265.1659851074219,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1235\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"harrison-ford-jako-indiana-jones-7e66c.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -134,\n        42\n      ],\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1260,\n            1415,\n            1439\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1440\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"clipspace/clipspace-mask-52383064.099999964.png [input]\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        330,\n        785\n      ],\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1471\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        328,\n        930\n      ],\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1492\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1472\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 648,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": [\n        729,\n        610\n      ],\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1471\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1472\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1470\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1473\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1474\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1475\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1476\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.7000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": [\n        1097,\n        420\n      ],\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1487\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1475\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1476\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        782404709542421,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": [\n        -155,\n        614\n      ],\n      \"size\": {\n        \"0\": 311.5732421875,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1487\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1015\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        229,\n        784\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1015\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1492\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": [\n        1100,\n        -10\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      947,\n      269,\n      0,\n      438,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1015,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1235,\n      562,\n      0,\n      438,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1260,\n      253,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1281,\n      579,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1415,\n      253,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1418,\n      396,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1431,\n      269,\n      0,\n      632,\n      2,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1432,\n      632,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1433,\n      632,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1434,\n      632,\n      2,\n      481,\n      0,\n      \"*\"\n    ],\n    [\n      1435,\n      632,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1436,\n      632,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1437,\n      632,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1438,\n      632,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1439,\n      253,\n      0,\n      632,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1440,\n      253,\n      1,\n      632,\n      1,\n      \"MASK\"\n    ],\n    [\n      1468,\n      646,\n      1,\n      644,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1470,\n      644,\n      0,\n      648,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1471,\n      252,\n      0,\n      648,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1472,\n      287,\n      0,\n      648,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1473,\n      636,\n      0,\n      648,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1474,\n      481,\n      0,\n      648,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1475,\n      648,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1476,\n      648,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1487,\n      241,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1488,\n      653,\n      0,\n      652,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1489,\n      438,\n      0,\n      652,\n      2,\n      \"FACE_EMBED\"\n    ],\n    [\n      1490,\n      652,\n      0,\n      644,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1491,\n      269,\n      0,\n      652,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1492,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.6934334949441707,\n      \"offset\": [\n        315.9759796687978,\n        359.160125843015\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/simple_with_adapter.json",
    "content": "{\n  \"last_node_id\": 651,\n  \"last_link_id\": 1488,\n  \"nodes\": [\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        670,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        910,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        144\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1437,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        164\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1438,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1440,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 40,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1418\n        }\n      ],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        2100,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1281\n        }\n      ],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": [\n        894,\n        510\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      }\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": [\n        751,\n        510\n      ],\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      }\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        206,\n        313\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1415\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": [\n        1438,\n        323\n      ],\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      }\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": [\n        1603,\n        186\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 38,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": [\n        1840,\n        149\n      ],\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 39,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1418\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1390,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 269,\n      \"type\": \"LoadInsightface\",\n      \"pos\": [\n        -457,\n        80\n      ],\n      \"size\": {\n        \"0\": 279.5220031738281,\n        \"1\": 41.10993957519531\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            947,\n            1431\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1708,\n        311\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        756,\n        293\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        890,\n        20\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        1440,\n        20\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1150,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        43\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1432\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        62\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1433\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1967,\n        51\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1260\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1281\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        104\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1435,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        124\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1436,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 632,\n      \"type\": \"PreprocessImage\",\n      \"pos\": [\n        335,\n        43\n      ],\n      \"size\": {\n        \"0\": 325.7662353515625,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1439\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1440\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1431\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1432\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1433\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1434\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1435\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1436\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1437\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1438\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        150\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 438,\n      \"type\": \"FaceEmbed\",\n      \"pos\": [\n        -70,\n        -43\n      ],\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 947\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1235\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1464\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 636,\n      \"type\": \"ControlNetLoader\",\n      \"pos\": [\n        -148,\n        964\n      ],\n      \"size\": {\n        \"0\": 308.55364990234375,\n        \"1\": 58\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"CONTROL_NET\",\n          \"type\": \"CONTROL_NET\",\n          \"links\": [\n            1473\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetLoader\"\n      },\n      \"widgets_values\": [\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        82\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1434\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1474\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        496,\n        480\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 644,\n      \"type\": \"FaceEmbedCombine\",\n      \"pos\": [\n        190,\n        445\n      ],\n      \"size\": {\n        \"0\": 245.1999969482422,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"link\": 1468\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1464\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"links\": [\n            1470,\n            1485\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbedCombine\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 646,\n      \"type\": \"LoadInstantIdAdapter\",\n      \"pos\": [\n        -151,\n        803\n      ],\n      \"size\": {\n        \"0\": 303.55364990234375,\n        \"1\": 78\n      },\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"InstantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"links\": [\n            1486\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"resampler\",\n          \"type\": \"RESAMPLER\",\n          \"links\": [\n            1468\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInstantIdAdapter\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\"\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": [\n        1097,\n        420\n      ],\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1483\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1475\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1476\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        421094154862615,\n        \"randomize\",\n        30,\n        3,\n        \"euler\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        330,\n        785\n      ],\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1471\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        328,\n        930\n      ],\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1488\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1472\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": [\n        1100,\n        -10\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 651,\n      \"type\": \"InstantIdAdapterApply\",\n      \"pos\": [\n        332,\n        613\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1484\n        },\n        {\n          \"name\": \"instantId_adapter\",\n          \"type\": \"INSTANTID_ADAPTER\",\n          \"link\": 1486\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1485\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1483\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAdapterApply\"\n      },\n      \"widgets_values\": [\n        0.6000000000000001\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 648,\n      \"type\": \"ControlNetInstantIdApply\",\n      \"pos\": [\n        729,\n        610\n      ],\n      \"size\": {\n        \"0\": 330,\n        \"1\": 138\n      },\n      \"flags\": {},\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1471\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1472\n        },\n        {\n          \"name\": \"face_conditioning\",\n          \"type\": \"FACE_CONDITIONING\",\n          \"link\": 1470\n        },\n        {\n          \"name\": \"control_net\",\n          \"type\": \"CONTROL_NET\",\n          \"link\": 1473\n        },\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1474\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1475\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1476\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ControlNetInstantIdApply\"\n      },\n      \"widgets_values\": [\n        0.8\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        229,\n        784\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1487\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1488\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": [\n        -155,\n        614\n      ],\n      \"size\": {\n        \"0\": 311.5732421875,\n        \"1\": 98\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1484\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1487\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 562,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -120,\n        -400\n      ],\n      \"size\": [\n        270,\n        314\n      ],\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1235\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -134,\n        42\n      ],\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1260,\n            1415,\n            1439\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1440\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"z19900074AMP,Luke-Skywalker-i-Yoda---Gwiezdne-wojny--Imperium-k.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      947,\n      269,\n      0,\n      438,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1235,\n      562,\n      0,\n      438,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1260,\n      253,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1281,\n      579,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1415,\n      253,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1418,\n      396,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1431,\n      269,\n      0,\n      632,\n      2,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1432,\n      632,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1433,\n      632,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1434,\n      632,\n      2,\n      481,\n      0,\n      \"*\"\n    ],\n    [\n      1435,\n      632,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1436,\n      632,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1437,\n      632,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1438,\n      632,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1439,\n      253,\n      0,\n      632,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1440,\n      253,\n      1,\n      632,\n      1,\n      \"MASK\"\n    ],\n    [\n      1464,\n      438,\n      0,\n      644,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1468,\n      646,\n      1,\n      644,\n      0,\n      \"RESAMPLER\"\n    ],\n    [\n      1470,\n      644,\n      0,\n      648,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1471,\n      252,\n      0,\n      648,\n      0,\n      \"CONDITIONING\"\n    ],\n    [\n      1472,\n      287,\n      0,\n      648,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1473,\n      636,\n      0,\n      648,\n      3,\n      \"CONTROL_NET\"\n    ],\n    [\n      1474,\n      481,\n      0,\n      648,\n      4,\n      \"IMAGE\"\n    ],\n    [\n      1475,\n      648,\n      0,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1476,\n      648,\n      1,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1483,\n      651,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1484,\n      241,\n      0,\n      651,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1485,\n      644,\n      0,\n      651,\n      2,\n      \"FACE_CONDITIONING\"\n    ],\n    [\n      1486,\n      646,\n      0,\n      651,\n      1,\n      \"INSTANTID_ADAPTER\"\n    ],\n    [\n      1487,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1488,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 1.1167815779425292,\n      \"offset\": [\n        -309.17294941711623,\n        -292.55354556608387\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  },
  {
    "path": "workflows/very_simple.json",
    "content": "{\n  \"last_node_id\": 634,\n  \"last_link_id\": 1450,\n  \"nodes\": [\n    {\n      \"id\": 369,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        670,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 26,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1052\n        }\n      ],\n      \"title\": \"InstantId Control Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 268,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        910,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 24,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 926\n        }\n      ],\n      \"title\": \"Image for inpaint\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 412,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        144\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 18,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1437,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            840\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 413,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1201,\n        164\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 19,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1438,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            841\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 395,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1440,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.2093505859375,\n        \"1\": 842.1597900390625\n      },\n      \"flags\": {},\n      \"order\": 37,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1418\n        }\n      ],\n      \"title\": \"Output Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 258,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        2100,\n        430\n      ],\n      \"size\": {\n        \"0\": 612.114013671875,\n        \"1\": 845.9668579101562\n      },\n      \"flags\": {},\n      \"order\": 11,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 1281\n        }\n      ],\n      \"title\": \"Input Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 630,\n      \"type\": \"SetLatentNoiseMask\",\n      \"pos\": [\n        894,\n        510\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 32,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1419\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1421\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1420\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"SetLatentNoiseMask\"\n      }\n    },\n    {\n      \"id\": 354,\n      \"type\": \"VAEEncode\",\n      \"pos\": [\n        751,\n        510\n      ],\n      \"size\": {\n        \"0\": 309.7555847167969,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 23,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"pixels\",\n          \"type\": \"IMAGE\",\n          \"link\": 923\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 1024\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1419\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEEncode\"\n      }\n    },\n    {\n      \"id\": 569,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        206,\n        313\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 5,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1415\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1314\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 474,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        416,\n        478\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 10,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1026\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1024,\n            1027\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 248,\n      \"type\": \"VAEDecode\",\n      \"pos\": [\n        1438,\n        323\n      ],\n      \"size\": {\n        \"0\": 140,\n        \"1\": 46\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 34,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"samples\",\n          \"type\": \"LATENT\",\n          \"link\": 1340\n        },\n        {\n          \"name\": \"vae\",\n          \"type\": \"VAE\",\n          \"link\": 768\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            797\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"VAEDecode\"\n      }\n    },\n    {\n      \"id\": 394,\n      \"type\": \"ImageScale\",\n      \"pos\": [\n        1603,\n        186\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 130\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 35,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 797\n        },\n        {\n          \"name\": \"width\",\n          \"type\": \"INT\",\n          \"link\": 840,\n          \"widget\": {\n            \"name\": \"width\"\n          }\n        },\n        {\n          \"name\": \"height\",\n          \"type\": \"INT\",\n          \"link\": 841,\n          \"widget\": {\n            \"name\": \"height\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            781\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageScale\"\n      },\n      \"widgets_values\": [\n        \"bilinear\",\n        512,\n        512,\n        \"disabled\"\n      ]\n    },\n    {\n      \"id\": 396,\n      \"type\": \"ImageCompositeMasked\",\n      \"pos\": [\n        1840,\n        149\n      ],\n      \"size\": {\n        \"0\": 327.45550537109375,\n        \"1\": 140.86239624023438\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 36,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"destination\",\n          \"type\": \"IMAGE\",\n          \"link\": 1032\n        },\n        {\n          \"name\": \"source\",\n          \"type\": \"IMAGE\",\n          \"link\": 781\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": null\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"link\": 836,\n          \"widget\": {\n            \"name\": \"x\"\n          }\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"link\": 838,\n          \"widget\": {\n            \"name\": \"y\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1418\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageCompositeMasked\"\n      },\n      \"widgets_values\": [\n        0,\n        0,\n        false\n      ]\n    },\n    {\n      \"id\": 326,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1390,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 31,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 590\n        }\n      ],\n      \"title\": \"Blurred Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 269,\n      \"type\": \"LoadInsightface\",\n      \"pos\": [\n        -457,\n        80\n      ],\n      \"size\": {\n        \"0\": 279.5220031738281,\n        \"1\": 41.10993957519531\n      },\n      \"flags\": {},\n      \"order\": 0,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"links\": [\n            947,\n            1431\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"LoadInsightface\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 389,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1708,\n        311\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 12,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1314\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1032\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 392,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        756,\n        293\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 22,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1027\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"VAE\",\n          \"links\": [\n            768\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 253,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -134,\n        42\n      ],\n      \"size\": {\n        \"0\": 290.3117370605469,\n        \"1\": 314\n      },\n      \"flags\": {},\n      \"order\": 1,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1260,\n            1415,\n            1439\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1440\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load Pose Image\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"clipspace/clipspace-mask-529397.5.png [input]\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 262,\n      \"type\": \"MaskToImage\",\n      \"pos\": [\n        890,\n        20\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 26\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 25,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 828,\n          \"slot_index\": 0\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            408,\n            558\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"MaskToImage\"\n      }\n    },\n    {\n      \"id\": 323,\n      \"type\": \"ImageToMask\",\n      \"pos\": [\n        1440,\n        20\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 58\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 30,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 563\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1421\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageToMask\"\n      },\n      \"widgets_values\": [\n        \"red\"\n      ]\n    },\n    {\n      \"id\": 264,\n      \"type\": \"PreviewImage\",\n      \"pos\": [\n        1150,\n        -340\n      ],\n      \"size\": {\n        \"0\": 210,\n        \"1\": 246\n      },\n      \"flags\": {},\n      \"order\": 28,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"images\",\n          \"type\": \"IMAGE\",\n          \"link\": 408\n        }\n      ],\n      \"title\": \"Mask\",\n      \"properties\": {\n        \"Node name for S&R\": \"PreviewImage\"\n      },\n      \"color\": \"#233\",\n      \"bgcolor\": \"#355\"\n    },\n    {\n      \"id\": 407,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        43\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 13,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1432\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            923,\n            926\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 408,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        62\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 14,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1433\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MASK\",\n          \"links\": [\n            828\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 579,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1967,\n        51\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 4,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1260\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1281\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 410,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        104\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 16,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1435,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            836\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 411,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        1118,\n        124\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 17,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1436,\n          \"widget\": {\n            \"name\": \"value\"\n          }\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"INT\",\n          \"links\": [\n            838\n          ]\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 632,\n      \"type\": \"PreprocessImage\",\n      \"pos\": [\n        335,\n        43\n      ],\n      \"size\": {\n        \"0\": 325.7662353515625,\n        \"1\": 290\n      },\n      \"flags\": {},\n      \"order\": 6,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1439\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"link\": 1440\n        },\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 1431\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"resized_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1432\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"mask\",\n          \"type\": \"MASK\",\n          \"links\": [\n            1433\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1434\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"x\",\n          \"type\": \"INT\",\n          \"links\": [\n            1435\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"y\",\n          \"type\": \"INT\",\n          \"links\": [\n            1436\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_width\",\n          \"type\": \"INT\",\n          \"links\": [\n            1437\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"original_height\",\n          \"type\": \"INT\",\n          \"links\": [\n            1438\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_width\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"new_height\",\n          \"type\": \"INT\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"PreprocessImage\"\n      },\n      \"widgets_values\": [\n        1024,\n        1024,\n        \"auto\",\n        150\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 481,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        802,\n        82\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 15,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1434\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1052,\n            1443\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 473,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        231,\n        721\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 8,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1315\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1441\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 252,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        330,\n        785\n      ],\n      \"size\": {\n        \"0\": 321.2493896484375,\n        \"1\": 112.86385345458984\n      },\n      \"flags\": {},\n      \"order\": 20,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1324\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1444\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Positive Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#232\",\n      \"bgcolor\": \"#353\"\n    },\n    {\n      \"id\": 287,\n      \"type\": \"CLIPTextEncode\",\n      \"pos\": [\n        330,\n        930\n      ],\n      \"size\": {\n        \"0\": 323.7601013183594,\n        \"1\": 111.55984497070312\n      },\n      \"flags\": {},\n      \"order\": 21,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"clip\",\n          \"type\": \"CLIP\",\n          \"link\": 1450\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"CONDITIONING\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1445\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Negative Prompt\",\n      \"properties\": {\n        \"Node name for S&R\": \"CLIPTextEncode\"\n      },\n      \"widgets_values\": [\n        \"\"\n      ],\n      \"color\": \"#322\",\n      \"bgcolor\": \"#533\"\n    },\n    {\n      \"id\": 438,\n      \"type\": \"FaceEmbed\",\n      \"pos\": [\n        -87,\n        -24\n      ],\n      \"size\": {\n        \"0\": 292.20001220703125,\n        \"1\": 66\n      },\n      \"flags\": {\n        \"collapsed\": true\n      },\n      \"order\": 7,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"insightface\",\n          \"type\": \"INSIGHTFACE_APP\",\n          \"link\": 947\n        },\n        {\n          \"name\": \"face_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1235\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": null\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"face embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"links\": [\n            1442\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"FaceEmbed\"\n      },\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 562,\n      \"type\": \"LoadImage\",\n      \"pos\": [\n        -126,\n        -385\n      ],\n      \"size\": [\n        265.1659851074219,\n        314\n      ],\n      \"flags\": {},\n      \"order\": 2,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            1235\n          ],\n          \"shape\": 3\n        },\n        {\n          \"name\": \"MASK\",\n          \"type\": \"MASK\",\n          \"links\": null,\n          \"shape\": 3\n        }\n      ],\n      \"title\": \"Load face Referecnce\",\n      \"properties\": {\n        \"Node name for S&R\": \"LoadImage\"\n      },\n      \"widgets_values\": [\n        \"han3.jpg\",\n        \"image\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 319,\n      \"type\": \"ImageBlur\",\n      \"pos\": [\n        1100,\n        -10\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 82\n      },\n      \"flags\": {\n        \"collapsed\": false\n      },\n      \"order\": 29,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"image\",\n          \"type\": \"IMAGE\",\n          \"link\": 558\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"IMAGE\",\n          \"type\": \"IMAGE\",\n          \"links\": [\n            563,\n            590\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"ImageBlur\"\n      },\n      \"widgets_values\": [\n        1,\n        0.1\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    },\n    {\n      \"id\": 241,\n      \"type\": \"CheckpointLoaderSimple\",\n      \"pos\": [\n        -149,\n        437\n      ],\n      \"size\": {\n        \"0\": 295.705078125,\n        \"1\": 310\n      },\n      \"flags\": {},\n      \"order\": 3,\n      \"mode\": 0,\n      \"outputs\": [\n        {\n          \"name\": \"MODEL\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1315\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"CLIP\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1449\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"VAE\",\n          \"type\": \"VAE\",\n          \"links\": [\n            1026\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"CheckpointLoaderSimple\"\n      },\n      \"widgets_values\": [\n        \"custom_3.9.safetensors\"\n      ],\n      \"color\": \"#223\",\n      \"bgcolor\": \"#335\"\n    },\n    {\n      \"id\": 471,\n      \"type\": \"Reroute\",\n      \"pos\": [\n        229,\n        784\n      ],\n      \"size\": [\n        75,\n        26\n      ],\n      \"flags\": {},\n      \"order\": 9,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"*\",\n          \"link\": 1449\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"\",\n          \"type\": \"CLIP\",\n          \"links\": [\n            1324,\n            1450\n          ],\n          \"slot_index\": 0\n        }\n      ],\n      \"properties\": {\n        \"showOutputText\": false,\n        \"horizontal\": false\n      }\n    },\n    {\n      \"id\": 634,\n      \"type\": \"InstantIdAndControlnetApply\",\n      \"pos\": [\n        712,\n        727\n      ],\n      \"size\": {\n        \"0\": 315,\n        \"1\": 210\n      },\n      \"flags\": {},\n      \"order\": 27,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1441\n        },\n        {\n          \"name\": \"face_embeds\",\n          \"type\": \"FACE_EMBED\",\n          \"link\": 1442\n        },\n        {\n          \"name\": \"control_image\",\n          \"type\": \"IMAGE\",\n          \"link\": 1443\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1444\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1445\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"links\": [\n            1446\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1447\n          ],\n          \"slot_index\": 1,\n          \"shape\": 3\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"links\": [\n            1448\n          ],\n          \"slot_index\": 2,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"InstantIdAndControlnetApply\"\n      },\n      \"widgets_values\": [\n        \"ip-adapter.bin\",\n        \"ControlNetModel\\\\diffusion_pytorch_model.safetensors\",\n        0.5,\n        0.7\n      ],\n      \"color\": \"#432\",\n      \"bgcolor\": \"#653\"\n    },\n    {\n      \"id\": 359,\n      \"type\": \"KSampler\",\n      \"pos\": [\n        1097,\n        420\n      ],\n      \"size\": {\n        \"0\": 316.94384765625,\n        \"1\": 486.80694580078125\n      },\n      \"flags\": {},\n      \"order\": 33,\n      \"mode\": 0,\n      \"inputs\": [\n        {\n          \"name\": \"model\",\n          \"type\": \"MODEL\",\n          \"link\": 1446\n        },\n        {\n          \"name\": \"positive\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1447\n        },\n        {\n          \"name\": \"negative\",\n          \"type\": \"CONDITIONING\",\n          \"link\": 1448\n        },\n        {\n          \"name\": \"latent_image\",\n          \"type\": \"LATENT\",\n          \"link\": 1420\n        }\n      ],\n      \"outputs\": [\n        {\n          \"name\": \"LATENT\",\n          \"type\": \"LATENT\",\n          \"links\": [\n            1340\n          ],\n          \"slot_index\": 0,\n          \"shape\": 3\n        }\n      ],\n      \"properties\": {\n        \"Node name for S&R\": \"KSampler\"\n      },\n      \"widgets_values\": [\n        930143501615199,\n        \"randomize\",\n        30,\n        3,\n        \"dpm_adaptive\",\n        \"karras\",\n        0.7000000000000001\n      ],\n      \"color\": \"#323\",\n      \"bgcolor\": \"#535\"\n    }\n  ],\n  \"links\": [\n    [\n      408,\n      262,\n      0,\n      264,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      558,\n      262,\n      0,\n      319,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      563,\n      319,\n      0,\n      323,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      590,\n      319,\n      0,\n      326,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      768,\n      392,\n      0,\n      248,\n      1,\n      \"VAE\"\n    ],\n    [\n      781,\n      394,\n      0,\n      396,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      797,\n      248,\n      0,\n      394,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      828,\n      408,\n      0,\n      262,\n      0,\n      \"MASK\"\n    ],\n    [\n      836,\n      410,\n      0,\n      396,\n      3,\n      \"INT\"\n    ],\n    [\n      838,\n      411,\n      0,\n      396,\n      4,\n      \"INT\"\n    ],\n    [\n      840,\n      412,\n      0,\n      394,\n      1,\n      \"INT\"\n    ],\n    [\n      841,\n      413,\n      0,\n      394,\n      2,\n      \"INT\"\n    ],\n    [\n      923,\n      407,\n      0,\n      354,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      926,\n      407,\n      0,\n      268,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      947,\n      269,\n      0,\n      438,\n      0,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1024,\n      474,\n      0,\n      354,\n      1,\n      \"VAE\"\n    ],\n    [\n      1026,\n      241,\n      2,\n      474,\n      0,\n      \"*\"\n    ],\n    [\n      1027,\n      474,\n      0,\n      392,\n      0,\n      \"*\"\n    ],\n    [\n      1032,\n      389,\n      0,\n      396,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1052,\n      481,\n      0,\n      369,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1235,\n      562,\n      0,\n      438,\n      1,\n      \"IMAGE\"\n    ],\n    [\n      1260,\n      253,\n      0,\n      579,\n      0,\n      \"*\"\n    ],\n    [\n      1281,\n      579,\n      0,\n      258,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1314,\n      569,\n      0,\n      389,\n      0,\n      \"*\"\n    ],\n    [\n      1315,\n      241,\n      0,\n      473,\n      0,\n      \"*\"\n    ],\n    [\n      1324,\n      471,\n      0,\n      252,\n      0,\n      \"CLIP\"\n    ],\n    [\n      1340,\n      359,\n      0,\n      248,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1415,\n      253,\n      0,\n      569,\n      0,\n      \"*\"\n    ],\n    [\n      1418,\n      396,\n      0,\n      395,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1419,\n      354,\n      0,\n      630,\n      0,\n      \"LATENT\"\n    ],\n    [\n      1420,\n      630,\n      0,\n      359,\n      3,\n      \"LATENT\"\n    ],\n    [\n      1421,\n      323,\n      0,\n      630,\n      1,\n      \"MASK\"\n    ],\n    [\n      1431,\n      269,\n      0,\n      632,\n      2,\n      \"INSIGHTFACE_APP\"\n    ],\n    [\n      1432,\n      632,\n      0,\n      407,\n      0,\n      \"*\"\n    ],\n    [\n      1433,\n      632,\n      1,\n      408,\n      0,\n      \"*\"\n    ],\n    [\n      1434,\n      632,\n      2,\n      481,\n      0,\n      \"*\"\n    ],\n    [\n      1435,\n      632,\n      3,\n      410,\n      0,\n      \"*\"\n    ],\n    [\n      1436,\n      632,\n      4,\n      411,\n      0,\n      \"*\"\n    ],\n    [\n      1437,\n      632,\n      5,\n      412,\n      0,\n      \"*\"\n    ],\n    [\n      1438,\n      632,\n      6,\n      413,\n      0,\n      \"*\"\n    ],\n    [\n      1439,\n      253,\n      0,\n      632,\n      0,\n      \"IMAGE\"\n    ],\n    [\n      1440,\n      253,\n      1,\n      632,\n      1,\n      \"MASK\"\n    ],\n    [\n      1441,\n      473,\n      0,\n      634,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1442,\n      438,\n      0,\n      634,\n      1,\n      \"FACE_EMBED\"\n    ],\n    [\n      1443,\n      481,\n      0,\n      634,\n      2,\n      \"IMAGE\"\n    ],\n    [\n      1444,\n      252,\n      0,\n      634,\n      3,\n      \"CONDITIONING\"\n    ],\n    [\n      1445,\n      287,\n      0,\n      634,\n      4,\n      \"CONDITIONING\"\n    ],\n    [\n      1446,\n      634,\n      0,\n      359,\n      0,\n      \"MODEL\"\n    ],\n    [\n      1447,\n      634,\n      1,\n      359,\n      1,\n      \"CONDITIONING\"\n    ],\n    [\n      1448,\n      634,\n      2,\n      359,\n      2,\n      \"CONDITIONING\"\n    ],\n    [\n      1449,\n      241,\n      1,\n      471,\n      0,\n      \"*\"\n    ],\n    [\n      1450,\n      471,\n      0,\n      287,\n      0,\n      \"CLIP\"\n    ]\n  ],\n  \"groups\": [],\n  \"config\": {},\n  \"extra\": {\n    \"ds\": {\n      \"scale\": 0.839054528882501,\n      \"offset\": [\n        218.60363014413264,\n        35.417663081193595\n      ]\n    },\n    \"groupNodes\": {}\n  },\n  \"version\": 0.4\n}"
  }
]