├── sd-vae.json
├── samples
├── ProjectorzGen_Sample.png
├── ProjectorzInpaint_Sample.png
├── ProjectorzInpaint_Sample.json
└── ProjectorzGen_Sample.json
├── __init__.py
├── upscalers.json
├── sd-models.json
├── pyproject.toml
├── sd-vae_sample.json
├── .github
└── workflows
│ └── publish.yml
├── ws.py
├── controlnet_model_list.json
├── README.md
├── controlnet_module_list.json
├── upscalers_sample.json
├── ws_manager.py
├── .gitignore
├── web
└── StableProjectorzBridge.js
├── nodes.py
├── samplers.json
├── samplers_sample.json
├── apis.py
├── options.json
├── sysinfo.json
└── sd-models_sample.json
/sd-vae.json:
--------------------------------------------------------------------------------
1 | [{"model_name": "Configure In ComfyUI", "filename": "Dummy File Name"}]
--------------------------------------------------------------------------------
/samples/ProjectorzGen_Sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IgorAherne/ComfyUI-StableProjectorzBridge/HEAD/samples/ProjectorzGen_Sample.png
--------------------------------------------------------------------------------
/samples/ProjectorzInpaint_Sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IgorAherne/ComfyUI-StableProjectorzBridge/HEAD/samples/ProjectorzInpaint_Sample.png
--------------------------------------------------------------------------------
/__init__.py:
--------------------------------------------------------------------------------
1 | from . import apis
2 | from . import ws
3 | from .nodes import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
4 | WEB_DIRECTORY = 'web'
5 | __all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY']
6 |
--------------------------------------------------------------------------------
/upscalers.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "Configure In ComfyUI",
4 | "model_name": "Configure In ComfyUI",
5 | "model_path": "Dummy Model Path",
6 | "model_url": null,
7 | "scale": 4
8 | }
9 | ]
--------------------------------------------------------------------------------
/sd-models.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title": "Dummy Title",
4 | "model_name": "Configure In ComfyUI",
5 | "hash": null,
6 | "sha256": null,
7 | "filename": "Dummy File Name",
8 | "config": "Dummy Config"
9 | }
10 | ]
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [project]
2 | name = "comfyui-stableprojectorzbridge"
3 | description = "This custom nodes enables Stable Projectorz to work with ComfyUI Directly."
4 | version = "1.0.5"
5 | license = "LICENSE"
6 |
7 | [project.urls]
8 | Repository = "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge"
9 | # Used by Comfy Registry https://comfyregistry.org
10 |
11 | [tool.comfy]
12 | PublisherId = "tianlang0704"
13 | DisplayName = "ComfyUI-StableProjectorzBridge"
14 | Icon = ""
15 |
--------------------------------------------------------------------------------
/sd-vae_sample.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "model_name": "Anything-V3.0.vae.pt",
4 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\VAE\\Anything-V3.0.vae.pt"
5 | },
6 | {
7 | "model_name": "blessed-fix.vae.pt",
8 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\VAE\\blessed-fix.vae.pt"
9 | },
10 | {
11 | "model_name": "blessed2.vae.pt",
12 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\VAE\\blessed2.vae.pt"
13 | },
14 | {
15 | "model_name": "orangemix.vae.pt",
16 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\VAE\\orangemix.vae.pt"
17 | }
18 | ]
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish to Comfy registry
2 | on:
3 | workflow_dispatch:
4 | push:
5 | branches:
6 | - main
7 | - master
8 | paths:
9 | - "pyproject.toml"
10 |
11 | jobs:
12 | publish-node:
13 | name: Publish Custom Node to registry
14 | runs-on: ubuntu-latest
15 | steps:
16 | - name: Check out code
17 | uses: actions/checkout@v4
18 | - name: Publish Custom Node
19 | uses: Comfy-Org/publish-node-action@main
20 | with:
21 | ## Add your own personal access token to your Github Repository secrets and reference it here.
22 | personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}
23 |
--------------------------------------------------------------------------------
/ws.py:
--------------------------------------------------------------------------------
1 | import asyncio
2 | import json
3 | from server import PromptServer
4 | from aiohttp import WSMsgType, web
5 | from .ws_manager import WSCallsManager
6 |
7 | ws_list = []
8 |
9 | @PromptServer.instance.routes.get('/A1111/v1/init_client')
10 | async def init_client_handler(request):
11 | ws = WSCallsManager()
12 | await ws.prepare_request(request)
13 | ws_list.append(ws)
14 | await ws.message_loop()
15 | ws_list.remove(ws)
16 | return web.Response()
17 |
18 | async def run_prompt(random_id, json_data):
19 | if len(ws_list) <= 0:
20 | return
21 | for ws in ws_list:
22 | await ws.call("run_prompt", {'random_id': random_id, 'json_data': json_data}, timeout = 600)
23 | queue = PromptServer.instance.prompt_queue
24 | if not queue:
25 | return
26 | count = queue.get_tasks_remaining()
27 | while count > 0:
28 | await asyncio.sleep(1)
29 | count = queue.get_tasks_remaining()
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/controlnet_model_list.json:
--------------------------------------------------------------------------------
1 | {
2 | "model_list": [
3 | "None",
4 | "control_canny-fp16 [e3fe7712]",
5 | "control_depth-fp16 [400750f6]",
6 | "control_hed-fp16 [13fee50b]",
7 | "control_lora_rank128_v11f1e_sd15_tile_fp16 [d258993f]",
8 | "control_mediapipe_face_sd15_v2 [9c7784a9]",
9 | "control_mlsd-fp16 [e3705cfa]",
10 | "control_normal-fp16 [63f96f7c]",
11 | "control_openpose-fp16 [9ca67cc5]",
12 | "control_scribble-fp16 [c508311e]",
13 | "control_seg-fp16 [b9c1cc12]",
14 | "control_v11p_sd15_inpaint_fp16 [be8bc0ed]",
15 | "control_v2p_sd15_mediapipe_face [9c7784a9]",
16 | "controlnet11Models_animeline [c58f338b]",
17 | "controlnet11Models_canny [b18e0966]",
18 | "controlnet11Models_depth [4b72d323]",
19 | "controlnet11Models_inpaint [be8bc0ed]",
20 | "controlnet11Models_lineart [5c23b17d]",
21 | "controlnet11Models_mlsd [77b5ad24]",
22 | "controlnet11Models_normal [592a19d8]",
23 | "controlnet11Models_openpose [73c2b67d]",
24 | "controlnet11Models_pix2pix [fabb3f7d]",
25 | "controlnet11Models_scribble [4e6af23e]",
26 | "controlnet11Models_seg [ab613144]",
27 | "controlnet11Models_shuffle [04a71f87]",
28 | "controlnet11Models_softedge [f616a34f]",
29 | "controlnet11Models_tile [39a89b25]",
30 | "diffusers_xl_depth_full [2f51180b]",
31 | "t2iadapter_color-fp16 [743b5c62]"
32 | ]
33 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Install
2 | The easiest way is to use ComfyUI Manager to install, otherwise just clone into ComfyUI's custom node folder.
3 |
4 | # Use
5 | 1. Create a workflow with Projector Controlnet Input as input, and Projectorz Output as output
6 | 2. Click Gen Art in Stable Projectorz
7 | 3. Done
8 |
9 | # Info
10 | These custom nodes enable Stable Projectorz to work with ComfyUI Directly.
11 |
12 | StableProjectorz sends controlnet images/masks and inpaint images/masks to ComfyUI nodes, and then ComfyUI process them and sends them back to StableProjectorz.
13 |
14 | All settings in Stable Projectorz are accessable through ProjectorzParameter node and ProjectorzControlnetParameter node.
15 |
16 | Enjoy!
17 |
18 | # Sample Workflows
19 |
20 | Sample workflow for Generating with Controlnet(the default way with Projectorz)
21 |
22 |
23 |
24 | Sample workflow for inpainting(Projectorz brush fill)
25 |
26 |
27 |
28 |
29 |
30 |
31 | # Basic settings
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/controlnet_module_list.json:
--------------------------------------------------------------------------------
1 | {
2 | "module_list": [
3 | "None",
4 | "softedge_pidinet",
5 | "shuffle",
6 | "seg_ofade20k",
7 | "scribble_pidinet",
8 | "reference_only",
9 | "openpose_full",
10 | "normalbae",
11 | "mlsd",
12 | "lineart_standard (from white bg & black line)",
13 | "depth_midas",
14 | "depth_marigold",
15 | "canny",
16 | "invert (from white bg & black line)",
17 | "InsightFace+CLIP-H (IPAdapter)",
18 | "ClipVision (Photomaker)",
19 | "CLIP-ViT-bigG (IPAdapter)",
20 | "CLIP-ViT-H (IPAdapter)",
21 | "InsightFace (InstantID)",
22 | "CLIP-G (Revision)",
23 | "CLIP-G (Revision ignore prompt)",
24 | "tile_resample",
25 | "tile_colorfix+sharp",
26 | "tile_colorfix",
27 | "threshold",
28 | "t2ia_sketch_pidi",
29 | "t2ia_color_grid",
30 | "softedge_teed",
31 | "softedge_pidisafe",
32 | "softedge_hedsafe",
33 | "softedge_hed",
34 | "seg_ufade20k",
35 | "seg_ofcoco",
36 | "seg_anime_face",
37 | "scribble_xdog",
38 | "scribble_hed",
39 | "reference_adain+attn",
40 | "reference_adain",
41 | "recolor_luminance",
42 | "recolor_intensity",
43 | "openpose_hand",
44 | "openpose_faceonly",
45 | "openpose_face",
46 | "openpose",
47 | "normal_midas",
48 | "mediapipe_face",
49 | "lineart_realistic",
50 | "lineart_coarse",
51 | "lineart_anime_denoise",
52 | "lineart_anime",
53 | "instant_id_face_keypoints",
54 | "inpaint_only+lama",
55 | "inpaint_only",
56 | "inpaint_global_harmonious",
57 | "dw_openpose_full",
58 | "depth_zoe",
59 | "depth_leres++",
60 | "depth_leres",
61 | "depth_hand_refiner",
62 | "depth_anything",
63 | "densepose_parula (black bg & blue torso)",
64 | "densepose (pruple bg & purple torso)",
65 | "blur_gaussian",
66 | "animal_openpose"
67 | ]
68 | }
--------------------------------------------------------------------------------
/upscalers_sample.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "None",
4 | "model_name": null,
5 | "model_path": null,
6 | "model_url": null,
7 | "scale": 4.0
8 | },
9 | {
10 | "name": "Lanczos",
11 | "model_name": null,
12 | "model_path": null,
13 | "model_url": null,
14 | "scale": 4.0
15 | },
16 | {
17 | "name": "Nearest",
18 | "model_name": null,
19 | "model_path": null,
20 | "model_url": null,
21 | "scale": 4.0
22 | },
23 | {
24 | "name": "DAT x2",
25 | "model_name": null,
26 | "model_path": "https://github.com/n0kovo/dat_upscaler_models/raw/main/DAT/DAT_x2.pth",
27 | "model_url": null,
28 | "scale": 2.0
29 | },
30 | {
31 | "name": "DAT x3",
32 | "model_name": null,
33 | "model_path": "https://github.com/n0kovo/dat_upscaler_models/raw/main/DAT/DAT_x3.pth",
34 | "model_url": null,
35 | "scale": 3.0
36 | },
37 | {
38 | "name": "DAT x4",
39 | "model_name": null,
40 | "model_path": "https://github.com/n0kovo/dat_upscaler_models/raw/main/DAT/DAT_x4.pth",
41 | "model_url": null,
42 | "scale": 4.0
43 | },
44 | {
45 | "name": "ESRGAN_4x",
46 | "model_name": "ESRGAN_4x",
47 | "model_path": "D:\\Projects\\AI\\2_Graphic\\stable-diffusion-webui-forge\\models\\ESRGAN\\ESRGAN_4x.pth",
48 | "model_url": null,
49 | "scale": 4.0
50 | },
51 | {
52 | "name": "LDSR",
53 | "model_name": null,
54 | "model_path": null,
55 | "model_url": null,
56 | "scale": 4.0
57 | },
58 | {
59 | "name": "R-ESRGAN 4x+",
60 | "model_name": null,
61 | "model_path": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth",
62 | "model_url": null,
63 | "scale": 4.0
64 | },
65 | {
66 | "name": "R-ESRGAN 4x+ Anime6B",
67 | "model_name": null,
68 | "model_path": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth",
69 | "model_url": null,
70 | "scale": 4.0
71 | },
72 | {
73 | "name": "ScuNET GAN",
74 | "model_name": "ScuNET GAN",
75 | "model_path": "https://github.com/cszn/KAIR/releases/download/v1.0/scunet_color_real_gan.pth",
76 | "model_url": null,
77 | "scale": 4.0
78 | },
79 | {
80 | "name": "ScuNET PSNR",
81 | "model_name": "ScuNET GAN",
82 | "model_path": "https://github.com/cszn/KAIR/releases/download/v1.0/scunet_color_real_psnr.pth",
83 | "model_url": null,
84 | "scale": 4.0
85 | },
86 | {
87 | "name": "SwinIR 4x",
88 | "model_name": "SwinIR 4x",
89 | "model_path": "https://github.com/JingyunLiang/SwinIR/releases/download/v0.0/003_realSR_BSRGAN_DFOWMFC_s64w8_SwinIR-L_x4_GAN.pth",
90 | "model_url": null,
91 | "scale": 4.0
92 | }
93 | ]
--------------------------------------------------------------------------------
/ws_manager.py:
--------------------------------------------------------------------------------
1 | import asyncio
2 | import json
3 | from aiohttp import web, WSMsgType
4 |
5 |
6 | class WSCallsManager:
7 | ws = None
8 | def __init__(self, message_handler=None):
9 | self.calls = dict()
10 | self.call_id = 0
11 | self.message_handler = message_handler
12 | self.destroyed = False
13 |
14 | async def prepare_request(self, request):
15 | ws = web.WebSocketResponse()
16 | await ws.prepare(request)
17 | self.ws = ws
18 |
19 | async def call(self, action, params, timeout=30):
20 | self.call_id += 1
21 | payload = {
22 | 'call_id': self.call_id,
23 | 'action': action,
24 | 'params': params
25 | }
26 | loop = asyncio.get_event_loop()
27 | call = loop.create_future()
28 | self.calls[self.call_id] = (loop, call)
29 |
30 | await self.ws.send_str(json.dumps(payload))
31 | await asyncio.wait_for(call, timeout)
32 | return call.result()
33 |
34 | def handle_call(self, call_id, result=None, error=None):
35 | loop, call = self._get_call_and_remove(call_id)
36 | if (call.cancelled()):
37 | return
38 | if (error is not None):
39 | loop.call_soon_threadsafe(call.set_exception, ValueError(error))
40 | else:
41 | loop.call_soon_threadsafe(call.set_result, result)
42 |
43 | def _get_call_and_remove(self, call_id):
44 | (loop, call) = self.calls.get(call_id, None)
45 | if call is not None:
46 | self.calls.pop(call_id)
47 | else:
48 | raise ValueError(f'call {call_id} not found')
49 | return loop, call
50 |
51 | async def message_loop(self):
52 | async for msg in self.ws:
53 | if self.destroyed: break
54 | if self.message_handler is not None and await self.message_handler(msg):
55 | continue
56 | if msg.type == WSMsgType.TEXT:
57 | payload = json.loads(msg.data)
58 | if 'call_id' in payload:
59 | call_id = payload['call_id']
60 | if 'error' not in payload and 'result' not in payload:
61 | await self.ws.send_str(json.dumps({ call_id: call_id, 'error': 'result not found in payload'}))
62 | else:
63 | self.handle_call(call_id, result=payload.get("result", None), error=payload.get("error", None))
64 | else:
65 | if 'error' in payload:
66 | print('Remote error', payload['error'])
67 | await self.ws.send_str(json.dumps({ 'error': 'call_id not found in payload'}))
68 | elif msg.type == WSMsgType.ERROR:
69 | print('ws connection closed with exception %s' % self.ws.exception())
70 | else:
71 | await self.ws.send_str('invalid msg type')
72 | await self.destroy()
73 |
74 | async def destroy(self):
75 | if self.destroyed:
76 | return
77 | self.destroyed = True
78 | await self.ws.close()
79 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # poetry
98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99 | # This is especially recommended for binary packages to ensure reproducibility, and is more
100 | # commonly ignored for libraries.
101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102 | #poetry.lock
103 |
104 | # pdm
105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106 | #pdm.lock
107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108 | # in version control.
109 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
110 | .pdm.toml
111 | .pdm-python
112 | .pdm-build/
113 |
114 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
115 | __pypackages__/
116 |
117 | # Celery stuff
118 | celerybeat-schedule
119 | celerybeat.pid
120 |
121 | # SageMath parsed files
122 | *.sage.py
123 |
124 | # Environments
125 | .env
126 | .venv
127 | env/
128 | venv/
129 | ENV/
130 | env.bak/
131 | venv.bak/
132 |
133 | # Spyder project settings
134 | .spyderproject
135 | .spyproject
136 |
137 | # Rope project settings
138 | .ropeproject
139 |
140 | # mkdocs documentation
141 | /site
142 |
143 | # mypy
144 | .mypy_cache/
145 | .dmypy.json
146 | dmypy.json
147 |
148 | # Pyre type checker
149 | .pyre/
150 |
151 | # pytype static type analyzer
152 | .pytype/
153 |
154 | # Cython debug symbols
155 | cython_debug/
156 |
157 | # PyCharm
158 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
159 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
160 | # and can be added to the global gitignore or merged into this file. For a more nuclear
161 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
162 | #.idea/
163 |
--------------------------------------------------------------------------------
/web/StableProjectorzBridge.js:
--------------------------------------------------------------------------------
1 | import { app } from "../../../scripts/app.js";
2 | import { api } from "../../../scripts/api.js"
3 |
4 | console.log("[StableProjectorzBridge]", "Loading js extension");
5 | const FILENAME_FORMAT_INIT_PREFIX = 'ProjectorInitBlob_{0}_'
6 | const FILENAME_FORMAT_CONTROLNET_PREFIX = 'ProjectorControlnetBlob_{0}_'
7 | const FILENAME_FORMAT_OUTPUT_PREFIX = 'ProjectorOutputBlob_{0}_'
8 | const FILENAME_FORMAT_INIT_PREFIX_DEFAULT = FILENAME_FORMAT_INIT_PREFIX.replace("{0}", "0")
9 | const FILENAME_FORMAT_CONTROLNET_PREFIX_DEFAULT = FILENAME_FORMAT_CONTROLNET_PREFIX.replace("{0}", "0")
10 | const FILENAME_FORMAT_OUTPUT_PREFIX_DEFAULT = FILENAME_FORMAT_OUTPUT_PREFIX.replace("{0}", "0")
11 | const DEFAUL_VALUE_TEXT = "!!!Autofill when executed!!!";
12 | let input_init_prefix = FILENAME_FORMAT_INIT_PREFIX_DEFAULT;
13 | let input_controlnet_prefix = FILENAME_FORMAT_CONTROLNET_PREFIX_DEFAULT;
14 | let output_prefix = FILENAME_FORMAT_OUTPUT_PREFIX_DEFAULT;
15 | let data = {};
16 | let socket;
17 | app.registerExtension({
18 | name: "Comfy.StableProjectorzBridge",
19 | init() {
20 | },
21 | async setup() {
22 | setInterval(() => {
23 | if (!socket) {
24 | createSocket();
25 | }
26 | }, 1000);
27 | },
28 | async beforeRegisterNodeDef(nodeType, nodeData, app) {
29 | if (nodeType.comfyClass === 'ProjectorzInitInput') {
30 | const this_handler = function() {
31 | const prefix_widget = this.widgets[1];
32 | prefix_widget.value = input_init_prefix;
33 | }
34 | const onSerialize = nodeType.prototype.onSerialize;
35 | nodeType.prototype.onSerialize = async function(...args) {
36 | if(onSerialize) await onSerialize.call(this, ...args);
37 | this_handler.call(this);
38 | }
39 | }
40 | else if (nodeType.comfyClass === 'ProjectorzControlnetInput') {
41 | const this_handler = function() {
42 | const prefix_widget = this.widgets[1];
43 | prefix_widget.value = input_controlnet_prefix;
44 | }
45 | const onSerialize = nodeType.prototype.onSerialize;
46 | nodeType.prototype.onSerialize = async function(...args) {
47 | if(onSerialize) await onSerialize.call(this, ...args);
48 | this_handler.call(this);
49 | }
50 | }
51 | else if (nodeType.comfyClass === 'ProjectorzOutput') {
52 | const this_handler = function() {
53 | const prefix_widget = this.widgets[0];
54 | prefix_widget.value = output_prefix;
55 | }
56 | const onSerialize = nodeType.prototype.onSerialize;
57 | nodeType.prototype.onSerialize = async function(...args) {
58 | if(onSerialize) await onSerialize.call(this, ...args);
59 | this_handler.call(this);
60 | }
61 | }
62 | else if (nodeType.comfyClass === 'ProjectorzParameter') {
63 | const this_handler = function() {
64 | const name = this.widgets[0];
65 | const value = this.widgets[1];
66 | if (data[name.value] == undefined) {
67 | value.value = DEFAUL_VALUE_TEXT;
68 | return;
69 | }
70 | value.value = data[name.value];
71 | }
72 | const onSerialize = nodeType.prototype.onSerialize;
73 | nodeType.prototype.onSerialize = async function(...args) {
74 | if(onSerialize) await onSerialize.call(this, ...args);
75 | this_handler.call(this);
76 | }
77 | }
78 | else if (nodeType.comfyClass === 'ProjectorzControlnetParameter') {
79 | const this_handler = function() {
80 | const index = this.widgets[0];
81 | const name = this.widgets[1];
82 | const value = this.widgets[2];
83 | const parameter = data.alwayson_scripts?.controlnet?.args?.[index.value]?.[name.value];
84 | if (parameter == undefined) {
85 | value.value = DEFAUL_VALUE_TEXT;
86 | return;
87 | }
88 | value.value = parameter;
89 | }
90 | const onSerialize = nodeType.prototype.onSerialize;
91 | nodeType.prototype.onSerialize = async function(...args) {
92 | if(onSerialize) await onSerialize.call(this, ...args);
93 | this_handler.call(this);
94 | }
95 | }
96 | }
97 | });
98 |
99 | function createSocket(){
100 | socket = new WebSocket(
101 | `ws${window.location.protocol === "https:" ? "s" : ""}://${api.api_host}/A1111/v1/init_client`
102 | );
103 | socket.addEventListener("open", () => {
104 | });
105 | socket.addEventListener("error", () => {
106 | if (socket) socket.close();
107 | });
108 | socket.addEventListener("close", () => {
109 | setTimeout(() => {
110 | socket = null;
111 | }, 300);
112 | });
113 | socket.addEventListener("message", (event) => {
114 | try {
115 | const msg = JSON.parse(event.data);
116 | switch (msg.action) {
117 | case "run_prompt":
118 | run_prompt(msg.call_id, msg.params);
119 | break;
120 | default:
121 | console.warn("Unhandled message:", event.data);
122 | break;
123 | }
124 | } catch (error) {
125 | console.warn("Unhandled message:", event.data, error);
126 | }
127 | });
128 | }
129 |
130 | async function respond(callId, result) {
131 | socket.send(JSON.stringify({
132 | call_id: callId,
133 | result: result,
134 | }));
135 | }
136 |
137 | async function run_prompt(callId, params) {
138 | const randomId = params.random_id ?? "0";
139 | data = params.json_data ?? "{}";
140 | input_init_prefix = FILENAME_FORMAT_INIT_PREFIX.replace("{0}", randomId);
141 | input_controlnet_prefix = FILENAME_FORMAT_CONTROLNET_PREFIX.replace("{0}", randomId);
142 | output_prefix = FILENAME_FORMAT_OUTPUT_PREFIX.replace("{0}", randomId);
143 | const n_iter = data.n_iter ?? 1;
144 | await app.queuePrompt(0, n_iter)
145 | respond(callId, "done");
146 | }
--------------------------------------------------------------------------------
/nodes.py:
--------------------------------------------------------------------------------
1 | import json
2 | import os
3 | from PIL import Image
4 | from PIL.PngImagePlugin import PngInfo
5 | import numpy as np
6 | import torch
7 | import folder_paths
8 | from nodes import LoadImage
9 | from . import apis
10 |
11 | DEFAUL_VALUE_TEXT = "!!!Autofill when executed!!!";
12 |
13 | def get_empty_image():
14 | r = torch.full([1, 512, 512, 1], ((0xFF >> 16) & 0xFF) / 0xFF)
15 | g = torch.full([1, 512, 512, 1], ((0xFF >> 8) & 0xFF) / 0xFF)
16 | b = torch.full([1, 512, 512, 1], ((0xFF) & 0xFF) / 0xFF)
17 | return torch.cat((r, g, b), dim=-1)
18 |
19 | def load_image(image_name):
20 | try:
21 | loadImage = LoadImage()
22 | (output_image, output_mask) = loadImage.load_image(image_name)
23 | except:
24 | output_image = get_empty_image()
25 | output_mask = torch.full([512, 512], 0)
26 | return (output_image, output_mask)
27 |
28 | class ProjectorzInitInput:
29 | channel_list = ["red", "green", "blue", "alpha"]
30 | @classmethod
31 | def INPUT_TYPES(cls):
32 | return {
33 | "required": {
34 | "index": ("INT", {"default": 0}),
35 | "name_prefix": ("STRING", {"default": apis.FILENAME_FORMAT_INIT_PREFIX_DEFAULT}),
36 | "mask_channel": (ProjectorzInitInput.channel_list,),
37 | }
38 | }
39 |
40 | RETURN_TYPES = ("IMAGE", "MASK")
41 | FUNCTION = "run"
42 | CATEGORY = "Projectorz"
43 |
44 | def run(self, index, name_prefix, mask_channel):
45 | image_name = name_prefix + str(index) + ".png"
46 | (output_image, output_mask) = load_image(image_name)
47 | image_mask_name = name_prefix + str(index) + "_mask.png"
48 | (output_image_mask, output_mask_mask) = load_image(image_mask_name)
49 | mask_channel_index = ProjectorzInitInput.channel_list.index(mask_channel)
50 | mask = output_image_mask[:, :, :, mask_channel_index] if mask_channel_index < 3 else output_mask_mask
51 | return (output_image, mask)
52 |
53 | class ProjectorzControlnetInput:
54 | @classmethod
55 | def INPUT_TYPES(cls):
56 | return {
57 | "required": {
58 | "index": ("INT", {"default": 0}),
59 | "name_prefix": ("STRING", {"default": apis.FILENAME_FORMAT_CONTROLNET_PREFIX_DEFAULT}),
60 | }
61 | }
62 |
63 | RETURN_TYPES = ("IMAGE", "MASK")
64 | FUNCTION = "run"
65 | CATEGORY = "Projectorz"
66 |
67 | def run(self, index, name_prefix):
68 | image_name = name_prefix + str(index) + ".png"
69 | (output_image, output_mask) = load_image(image_name)
70 | image_mask_name = name_prefix + str(index) + "_mask.png"
71 | (output_image_mask, output_mask_mask) = load_image(image_mask_name)
72 | return (output_image, output_mask_mask)
73 |
74 | class ProjectorzOutput:
75 | @classmethod
76 | def INPUT_TYPES(cls):
77 | return {
78 | "required": {
79 | "images": ("IMAGE",),
80 | "name_prefix": ("STRING", {"default": apis.FILENAME_FORMAT_OUTPUT_PREFIX_DEFAULT}),
81 | },
82 | "hidden": {"prompt": "PROMPT", "extra_pnginfo": "EXTRA_PNGINFO"},
83 | }
84 |
85 | RETURN_TYPES = ()
86 | FUNCTION = "run"
87 | CATEGORY = "Projectorz"
88 | OUTPUT_NODE = True
89 |
90 | def run(self, images, name_prefix, prompt=None, extra_pnginfo=None):
91 | output_dir = folder_paths.get_output_directory()
92 | dup_count = 0
93 | for (batch_number, image) in enumerate(images):
94 | i = 255. * image.cpu().numpy()
95 | img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8))
96 | metadata = PngInfo()
97 | if prompt is not None:
98 | metadata.add_text("prompt", json.dumps(prompt))
99 | if extra_pnginfo is not None:
100 | for x in extra_pnginfo:
101 | metadata.add_text(x, json.dumps(extra_pnginfo[x]))
102 | output_filename = f"{name_prefix}_{batch_number}_{dup_count}.png"
103 | while os.path.exists(os.path.join(output_dir, output_filename)):
104 | dup_count += 1
105 | output_filename = f"{name_prefix}_{batch_number}_{dup_count}.png"
106 | img.save(os.path.join(output_dir, output_filename), pnginfo=metadata)
107 | return (None,)
108 |
109 | PROJECTORZ_PARAMETERS = [
110 | 'prompt',
111 | 'negative_prompt',
112 | 'sampler_name',
113 | 'batch_size',
114 | 'n_iter',
115 | 'steps',
116 | 'cfg_scale',
117 | 'width',
118 | 'height',
119 | 'seed',
120 | 'refiner_checkpoint',
121 | 'refiner_switch_at',
122 | 'tiling',
123 | 'enable_hr',
124 | 'hr_upscaler',
125 | 'hr_sampler_name',
126 | 'hr_scale',
127 | 'denoising_strength',
128 | 'hr_second_pass_steps',
129 | ]
130 | class ProjectorzParameter:
131 | @classmethod
132 | def INPUT_TYPES(cls):
133 | return {
134 | "required": {
135 | "name": (PROJECTORZ_PARAMETERS, {"default": PROJECTORZ_PARAMETERS[0]}),
136 | "value": ("STRING", {"default": DEFAUL_VALUE_TEXT}),
137 | }
138 | }
139 |
140 | RETURN_TYPES = ("STRING", )
141 | FUNCTION = "run"
142 | CATEGORY = "Projectorz"
143 |
144 | def run(self, name, value):
145 | return (str(value),)
146 |
147 | PROJECTORZ_CONTROLNET_PARAMETERS = [
148 | 'enabled',
149 | 'resize_mode',
150 | 'module',
151 | 'model',
152 | 'weight',
153 | 'low_vram',
154 | 'processor_res',
155 | 'threshold_a',
156 | 'threshold_b',
157 | 'guidance_start',
158 | 'guidance_end',
159 | 'control_mode',
160 | 'pixel_perfect',
161 | ]
162 | class ProjectorzControlnetParameter:
163 | @classmethod
164 | def INPUT_TYPES(cls):
165 | return {
166 | "required": {
167 | "index": ("INT", {"default": 0}),
168 | "name": (PROJECTORZ_CONTROLNET_PARAMETERS, {"default": PROJECTORZ_CONTROLNET_PARAMETERS[0]}),
169 | "value": ("STRING", {"default": DEFAUL_VALUE_TEXT}),
170 | }
171 | }
172 |
173 | RETURN_TYPES = ("STRING", )
174 | FUNCTION = "run"
175 | CATEGORY = "Projectorz"
176 |
177 | def run(self, index, name, value):
178 | return (str(value),)
179 |
180 | class ProjectorzStringToInt:
181 | @classmethod
182 | def INPUT_TYPES(cls):
183 | return {
184 | "required": {
185 | "string": ("STRING", {"default": ""}),
186 | }
187 | }
188 |
189 | RETURN_TYPES = ("INT", )
190 | FUNCTION = "run"
191 | CATEGORY = "Projectorz"
192 |
193 | def run(self, string):
194 | return (int(string),)
195 |
196 | class ProjectorzStringToFloat:
197 | @classmethod
198 | def INPUT_TYPES(cls):
199 | return {
200 | "required": {
201 | "string": ("STRING", {"default": ""}),
202 | }
203 | }
204 |
205 | RETURN_TYPES = ("FLOAT", )
206 | FUNCTION = "run"
207 | CATEGORY = "Projectorz"
208 |
209 | def run(self, string):
210 | return (float(string),)
211 |
212 | NODE_CLASS_MAPPINGS = {
213 | "ProjectorzInitInput": ProjectorzInitInput,
214 | "ProjectorzControlnetInput": ProjectorzControlnetInput,
215 | "ProjectorzOutput": ProjectorzOutput,
216 | "ProjectorzParameter": ProjectorzParameter,
217 | "ProjectorzControlnetParameter": ProjectorzControlnetParameter,
218 | "ProjectorzStringToInt": ProjectorzStringToInt,
219 | "ProjectorzStringToFloat": ProjectorzStringToFloat,
220 | }
221 |
222 | NODE_DISPLAY_NAME_MAPPINGS = {
223 | "ProjectorzInitInput": "Projectorz Init Input",
224 | "ProjectorzControlnetInput": "Projectorz Controlnet Input",
225 | "ProjectorzOutput": "Projectorz Output",
226 | "ProjectorzParameter": "Projectorz Parameter",
227 | "ProjectorzControlnetParameter": "Projectorz Controlnet Parameter",
228 | "ProjectorzStringToInt": "Projectorz String To Int",
229 | "ProjectorzStringToFloat": "Projectorz String To Float",
230 | }
--------------------------------------------------------------------------------
/samplers.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "DPM++ 2M Karras",
4 | "aliases": [
5 | "k_dpmpp_2m_ka"
6 | ],
7 | "options": {
8 | "scheduler": "karras"
9 | }
10 | },
11 | {
12 | "name": "DPM++ SDE Karras",
13 | "aliases": [
14 | "k_dpmpp_sde_ka"
15 | ],
16 | "options": {
17 | "scheduler": "karras",
18 | "second_order": "True",
19 | "brownian_noise": "True"
20 | }
21 | },
22 | {
23 | "name": "DPM++ 2M SDE Exponential",
24 | "aliases": [
25 | "k_dpmpp_2m_sde_exp"
26 | ],
27 | "options": {
28 | "scheduler": "exponential",
29 | "brownian_noise": "True"
30 | }
31 | },
32 | {
33 | "name": "DPM++ 2M SDE Karras",
34 | "aliases": [
35 | "k_dpmpp_2m_sde_ka"
36 | ],
37 | "options": {
38 | "scheduler": "karras",
39 | "brownian_noise": "True"
40 | }
41 | },
42 | {
43 | "name": "Euler a",
44 | "aliases": [
45 | "k_euler_a",
46 | "k_euler_ancestral"
47 | ],
48 | "options": {
49 | "uses_ensd": "True"
50 | }
51 | },
52 | {
53 | "name": "Euler",
54 | "aliases": [
55 | "k_euler"
56 | ],
57 | "options": {}
58 | },
59 | {
60 | "name": "LMS",
61 | "aliases": [
62 | "k_lms"
63 | ],
64 | "options": {}
65 | },
66 | {
67 | "name": "Heun",
68 | "aliases": [
69 | "k_heun"
70 | ],
71 | "options": {
72 | "second_order": "True"
73 | }
74 | },
75 | {
76 | "name": "DPM2",
77 | "aliases": [
78 | "k_dpm_2"
79 | ],
80 | "options": {
81 | "discard_next_to_last_sigma": "True",
82 | "second_order": "True"
83 | }
84 | },
85 | {
86 | "name": "DPM2 a",
87 | "aliases": [
88 | "k_dpm_2_a"
89 | ],
90 | "options": {
91 | "discard_next_to_last_sigma": "True",
92 | "uses_ensd": "True",
93 | "second_order": "True"
94 | }
95 | },
96 | {
97 | "name": "DPM++ 2S a",
98 | "aliases": [
99 | "k_dpmpp_2s_a"
100 | ],
101 | "options": {
102 | "uses_ensd": "True",
103 | "second_order": "True"
104 | }
105 | },
106 | {
107 | "name": "DPM++ 2M",
108 | "aliases": [
109 | "k_dpmpp_2m"
110 | ],
111 | "options": {}
112 | },
113 | {
114 | "name": "DPM++ SDE",
115 | "aliases": [
116 | "k_dpmpp_sde"
117 | ],
118 | "options": {
119 | "second_order": "True",
120 | "brownian_noise": "True"
121 | }
122 | },
123 | {
124 | "name": "DPM++ 2M SDE",
125 | "aliases": [
126 | "k_dpmpp_2m_sde_ka"
127 | ],
128 | "options": {
129 | "brownian_noise": "True"
130 | }
131 | },
132 | {
133 | "name": "DPM++ 2M SDE Heun",
134 | "aliases": [
135 | "k_dpmpp_2m_sde_heun"
136 | ],
137 | "options": {
138 | "brownian_noise": "True",
139 | "solver_type": "heun"
140 | }
141 | },
142 | {
143 | "name": "DPM++ 2M SDE Heun Karras",
144 | "aliases": [
145 | "k_dpmpp_2m_sde_heun_ka"
146 | ],
147 | "options": {
148 | "scheduler": "karras",
149 | "brownian_noise": "True",
150 | "solver_type": "heun"
151 | }
152 | },
153 | {
154 | "name": "DPM++ 2M SDE Heun Exponential",
155 | "aliases": [
156 | "k_dpmpp_2m_sde_heun_exp"
157 | ],
158 | "options": {
159 | "scheduler": "exponential",
160 | "brownian_noise": "True",
161 | "solver_type": "heun"
162 | }
163 | },
164 | {
165 | "name": "DPM++ 3M SDE",
166 | "aliases": [
167 | "k_dpmpp_3m_sde"
168 | ],
169 | "options": {
170 | "discard_next_to_last_sigma": "True",
171 | "brownian_noise": "True"
172 | }
173 | },
174 | {
175 | "name": "DPM++ 3M SDE Karras",
176 | "aliases": [
177 | "k_dpmpp_3m_sde_ka"
178 | ],
179 | "options": {
180 | "scheduler": "karras",
181 | "discard_next_to_last_sigma": "True",
182 | "brownian_noise": "True"
183 | }
184 | },
185 | {
186 | "name": "DPM++ 3M SDE Exponential",
187 | "aliases": [
188 | "k_dpmpp_3m_sde_exp"
189 | ],
190 | "options": {
191 | "scheduler": "exponential",
192 | "discard_next_to_last_sigma": "True",
193 | "brownian_noise": "True"
194 | }
195 | },
196 | {
197 | "name": "DPM fast",
198 | "aliases": [
199 | "k_dpm_fast"
200 | ],
201 | "options": {
202 | "uses_ensd": "True"
203 | }
204 | },
205 | {
206 | "name": "DPM adaptive",
207 | "aliases": [
208 | "k_dpm_ad"
209 | ],
210 | "options": {
211 | "uses_ensd": "True"
212 | }
213 | },
214 | {
215 | "name": "LMS Karras",
216 | "aliases": [
217 | "k_lms_ka"
218 | ],
219 | "options": {
220 | "scheduler": "karras"
221 | }
222 | },
223 | {
224 | "name": "DPM2 Karras",
225 | "aliases": [
226 | "k_dpm_2_ka"
227 | ],
228 | "options": {
229 | "scheduler": "karras",
230 | "discard_next_to_last_sigma": "True",
231 | "uses_ensd": "True",
232 | "second_order": "True"
233 | }
234 | },
235 | {
236 | "name": "DPM2 a Karras",
237 | "aliases": [
238 | "k_dpm_2_a_ka"
239 | ],
240 | "options": {
241 | "scheduler": "karras",
242 | "discard_next_to_last_sigma": "True",
243 | "uses_ensd": "True",
244 | "second_order": "True"
245 | }
246 | },
247 | {
248 | "name": "DPM++ 2S a Karras",
249 | "aliases": [
250 | "k_dpmpp_2s_a_ka"
251 | ],
252 | "options": {
253 | "scheduler": "karras",
254 | "uses_ensd": "True",
255 | "second_order": "True"
256 | }
257 | },
258 | {
259 | "name": "Restart",
260 | "aliases": [
261 | "restart"
262 | ],
263 | "options": {
264 | "scheduler": "karras",
265 | "second_order": "True"
266 | }
267 | },
268 | {
269 | "name": "DDIM",
270 | "aliases": [
271 | "ddim"
272 | ],
273 | "options": {}
274 | },
275 | {
276 | "name": "PLMS",
277 | "aliases": [
278 | "plms"
279 | ],
280 | "options": {}
281 | },
282 | {
283 | "name": "UniPC",
284 | "aliases": [
285 | "unipc"
286 | ],
287 | "options": {}
288 | },
289 | {
290 | "name": "LCM",
291 | "aliases": [
292 | "k_lcm"
293 | ],
294 | "options": {}
295 | },
296 | {
297 | "name": "DDPM",
298 | "aliases": [
299 | "ddpm"
300 | ],
301 | "options": {}
302 | },
303 | {
304 | "name": "DDPM Karras",
305 | "aliases": [
306 | "ddpm_karras"
307 | ],
308 | "options": {}
309 | },
310 | {
311 | "name": "Euler A Turbo",
312 | "aliases": [
313 | "euler_ancestral_turbo"
314 | ],
315 | "options": {}
316 | },
317 | {
318 | "name": "DPM++ 2M Turbo",
319 | "aliases": [
320 | "dpmpp_2m_turbo"
321 | ],
322 | "options": {}
323 | },
324 | {
325 | "name": "DPM++ 2M SDE Turbo",
326 | "aliases": [
327 | "dpmpp_2m_sde_turbo"
328 | ],
329 | "options": {}
330 | },
331 | {
332 | "name": "LCM Karras",
333 | "aliases": [
334 | "lcm_karras"
335 | ],
336 | "options": {}
337 | },
338 | {
339 | "name": "Euler SGMUniform",
340 | "aliases": [
341 | "euler_sgm_uniform"
342 | ],
343 | "options": {}
344 | },
345 | {
346 | "name": "Euler A SGMUniform",
347 | "aliases": [
348 | "euler_ancestral_sgm_uniform"
349 | ],
350 | "options": {}
351 | },
352 | {
353 | "name": "DPM++ 2M SGMUniform",
354 | "aliases": [
355 | "dpmpp_2m_sgm_uniform"
356 | ],
357 | "options": {}
358 | },
359 | {
360 | "name": "DPM++ 2M SDE SGMUniform",
361 | "aliases": [
362 | "dpmpp_2m_sde_sgm_uniform"
363 | ],
364 | "options": {}
365 | }
366 | ]
--------------------------------------------------------------------------------
/samplers_sample.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "DPM++ 2M Karras",
4 | "aliases": [
5 | "k_dpmpp_2m_ka"
6 | ],
7 | "options": {
8 | "scheduler": "karras"
9 | }
10 | },
11 | {
12 | "name": "DPM++ SDE Karras",
13 | "aliases": [
14 | "k_dpmpp_sde_ka"
15 | ],
16 | "options": {
17 | "scheduler": "karras",
18 | "second_order": "True",
19 | "brownian_noise": "True"
20 | }
21 | },
22 | {
23 | "name": "DPM++ 2M SDE Exponential",
24 | "aliases": [
25 | "k_dpmpp_2m_sde_exp"
26 | ],
27 | "options": {
28 | "scheduler": "exponential",
29 | "brownian_noise": "True"
30 | }
31 | },
32 | {
33 | "name": "DPM++ 2M SDE Karras",
34 | "aliases": [
35 | "k_dpmpp_2m_sde_ka"
36 | ],
37 | "options": {
38 | "scheduler": "karras",
39 | "brownian_noise": "True"
40 | }
41 | },
42 | {
43 | "name": "Euler a",
44 | "aliases": [
45 | "k_euler_a",
46 | "k_euler_ancestral"
47 | ],
48 | "options": {
49 | "uses_ensd": "True"
50 | }
51 | },
52 | {
53 | "name": "Euler",
54 | "aliases": [
55 | "k_euler"
56 | ],
57 | "options": {}
58 | },
59 | {
60 | "name": "LMS",
61 | "aliases": [
62 | "k_lms"
63 | ],
64 | "options": {}
65 | },
66 | {
67 | "name": "Heun",
68 | "aliases": [
69 | "k_heun"
70 | ],
71 | "options": {
72 | "second_order": "True"
73 | }
74 | },
75 | {
76 | "name": "DPM2",
77 | "aliases": [
78 | "k_dpm_2"
79 | ],
80 | "options": {
81 | "discard_next_to_last_sigma": "True",
82 | "second_order": "True"
83 | }
84 | },
85 | {
86 | "name": "DPM2 a",
87 | "aliases": [
88 | "k_dpm_2_a"
89 | ],
90 | "options": {
91 | "discard_next_to_last_sigma": "True",
92 | "uses_ensd": "True",
93 | "second_order": "True"
94 | }
95 | },
96 | {
97 | "name": "DPM++ 2S a",
98 | "aliases": [
99 | "k_dpmpp_2s_a"
100 | ],
101 | "options": {
102 | "uses_ensd": "True",
103 | "second_order": "True"
104 | }
105 | },
106 | {
107 | "name": "DPM++ 2M",
108 | "aliases": [
109 | "k_dpmpp_2m"
110 | ],
111 | "options": {}
112 | },
113 | {
114 | "name": "DPM++ SDE",
115 | "aliases": [
116 | "k_dpmpp_sde"
117 | ],
118 | "options": {
119 | "second_order": "True",
120 | "brownian_noise": "True"
121 | }
122 | },
123 | {
124 | "name": "DPM++ 2M SDE",
125 | "aliases": [
126 | "k_dpmpp_2m_sde_ka"
127 | ],
128 | "options": {
129 | "brownian_noise": "True"
130 | }
131 | },
132 | {
133 | "name": "DPM++ 2M SDE Heun",
134 | "aliases": [
135 | "k_dpmpp_2m_sde_heun"
136 | ],
137 | "options": {
138 | "brownian_noise": "True",
139 | "solver_type": "heun"
140 | }
141 | },
142 | {
143 | "name": "DPM++ 2M SDE Heun Karras",
144 | "aliases": [
145 | "k_dpmpp_2m_sde_heun_ka"
146 | ],
147 | "options": {
148 | "scheduler": "karras",
149 | "brownian_noise": "True",
150 | "solver_type": "heun"
151 | }
152 | },
153 | {
154 | "name": "DPM++ 2M SDE Heun Exponential",
155 | "aliases": [
156 | "k_dpmpp_2m_sde_heun_exp"
157 | ],
158 | "options": {
159 | "scheduler": "exponential",
160 | "brownian_noise": "True",
161 | "solver_type": "heun"
162 | }
163 | },
164 | {
165 | "name": "DPM++ 3M SDE",
166 | "aliases": [
167 | "k_dpmpp_3m_sde"
168 | ],
169 | "options": {
170 | "discard_next_to_last_sigma": "True",
171 | "brownian_noise": "True"
172 | }
173 | },
174 | {
175 | "name": "DPM++ 3M SDE Karras",
176 | "aliases": [
177 | "k_dpmpp_3m_sde_ka"
178 | ],
179 | "options": {
180 | "scheduler": "karras",
181 | "discard_next_to_last_sigma": "True",
182 | "brownian_noise": "True"
183 | }
184 | },
185 | {
186 | "name": "DPM++ 3M SDE Exponential",
187 | "aliases": [
188 | "k_dpmpp_3m_sde_exp"
189 | ],
190 | "options": {
191 | "scheduler": "exponential",
192 | "discard_next_to_last_sigma": "True",
193 | "brownian_noise": "True"
194 | }
195 | },
196 | {
197 | "name": "DPM fast",
198 | "aliases": [
199 | "k_dpm_fast"
200 | ],
201 | "options": {
202 | "uses_ensd": "True"
203 | }
204 | },
205 | {
206 | "name": "DPM adaptive",
207 | "aliases": [
208 | "k_dpm_ad"
209 | ],
210 | "options": {
211 | "uses_ensd": "True"
212 | }
213 | },
214 | {
215 | "name": "LMS Karras",
216 | "aliases": [
217 | "k_lms_ka"
218 | ],
219 | "options": {
220 | "scheduler": "karras"
221 | }
222 | },
223 | {
224 | "name": "DPM2 Karras",
225 | "aliases": [
226 | "k_dpm_2_ka"
227 | ],
228 | "options": {
229 | "scheduler": "karras",
230 | "discard_next_to_last_sigma": "True",
231 | "uses_ensd": "True",
232 | "second_order": "True"
233 | }
234 | },
235 | {
236 | "name": "DPM2 a Karras",
237 | "aliases": [
238 | "k_dpm_2_a_ka"
239 | ],
240 | "options": {
241 | "scheduler": "karras",
242 | "discard_next_to_last_sigma": "True",
243 | "uses_ensd": "True",
244 | "second_order": "True"
245 | }
246 | },
247 | {
248 | "name": "DPM++ 2S a Karras",
249 | "aliases": [
250 | "k_dpmpp_2s_a_ka"
251 | ],
252 | "options": {
253 | "scheduler": "karras",
254 | "uses_ensd": "True",
255 | "second_order": "True"
256 | }
257 | },
258 | {
259 | "name": "Restart",
260 | "aliases": [
261 | "restart"
262 | ],
263 | "options": {
264 | "scheduler": "karras",
265 | "second_order": "True"
266 | }
267 | },
268 | {
269 | "name": "DDIM",
270 | "aliases": [
271 | "ddim"
272 | ],
273 | "options": {}
274 | },
275 | {
276 | "name": "PLMS",
277 | "aliases": [
278 | "plms"
279 | ],
280 | "options": {}
281 | },
282 | {
283 | "name": "UniPC",
284 | "aliases": [
285 | "unipc"
286 | ],
287 | "options": {}
288 | },
289 | {
290 | "name": "LCM",
291 | "aliases": [
292 | "k_lcm"
293 | ],
294 | "options": {}
295 | },
296 | {
297 | "name": "DDPM",
298 | "aliases": [
299 | "ddpm"
300 | ],
301 | "options": {}
302 | },
303 | {
304 | "name": "DDPM Karras",
305 | "aliases": [
306 | "ddpm_karras"
307 | ],
308 | "options": {}
309 | },
310 | {
311 | "name": "Euler A Turbo",
312 | "aliases": [
313 | "euler_ancestral_turbo"
314 | ],
315 | "options": {}
316 | },
317 | {
318 | "name": "DPM++ 2M Turbo",
319 | "aliases": [
320 | "dpmpp_2m_turbo"
321 | ],
322 | "options": {}
323 | },
324 | {
325 | "name": "DPM++ 2M SDE Turbo",
326 | "aliases": [
327 | "dpmpp_2m_sde_turbo"
328 | ],
329 | "options": {}
330 | },
331 | {
332 | "name": "LCM Karras",
333 | "aliases": [
334 | "lcm_karras"
335 | ],
336 | "options": {}
337 | },
338 | {
339 | "name": "Euler SGMUniform",
340 | "aliases": [
341 | "euler_sgm_uniform"
342 | ],
343 | "options": {}
344 | },
345 | {
346 | "name": "Euler A SGMUniform",
347 | "aliases": [
348 | "euler_ancestral_sgm_uniform"
349 | ],
350 | "options": {}
351 | },
352 | {
353 | "name": "DPM++ 2M SGMUniform",
354 | "aliases": [
355 | "dpmpp_2m_sgm_uniform"
356 | ],
357 | "options": {}
358 | },
359 | {
360 | "name": "DPM++ 2M SDE SGMUniform",
361 | "aliases": [
362 | "dpmpp_2m_sde_sgm_uniform"
363 | ],
364 | "options": {}
365 | }
366 | ]
--------------------------------------------------------------------------------
/apis.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import io
3 | import json
4 | import os
5 | import random
6 | import string
7 | from PIL import PngImagePlugin, Image
8 | import aiohttp
9 | import numpy as np
10 | from server import PromptServer
11 | import folder_paths
12 | from aiohttp import web
13 | from . import ws
14 | import nodes
15 |
16 | FILENAME_FORMAT_INIT_PREFIX = 'ProjectorInitBlob_'
17 | FILENAME_FORMAT_CONTROLNET_PREFIX = 'ProjectorControlnetBlob_'
18 | FILENAME_FORMAT_OUTPUT_PREFIX = 'ProjectorOutputBlob_'
19 | FILENAME_FORMAT_INIT_PREFIX_DEFAULT = FILENAME_FORMAT_INIT_PREFIX.format("0")
20 | FILENAME_FORMAT_CONTROLNET_PREFIX_DEFAULT = FILENAME_FORMAT_CONTROLNET_PREFIX.format("0")
21 | FILENAME_FORMAT_OUTPUT_PREFIX_DEFAULT = FILENAME_FORMAT_OUTPUT_PREFIX.format("0")
22 |
23 | CURRENT_PATH = os.path.dirname(os.path.realpath(__file__))
24 |
25 | json_cache = {}
26 | def get_json_response(file_name):
27 | data = None
28 | if file_name in json_cache:
29 | data = json_cache[file_name]
30 | else:
31 | with open(os.path.join(CURRENT_PATH, file_name)) as f:
32 | data = json.load(f)
33 | json_cache[file_name] = data
34 | return web.Response(body=json.dumps(data), content_type='application/json')
35 |
36 | @PromptServer.instance.internal_routes.routes.get('/sysinfo')
37 | async def sysinfo_handler(request):
38 | return get_json_response('sysinfo.json')
39 |
40 | @PromptServer.instance.internal_routes.routes.get('/ping')
41 | async def ping_handler(request):
42 | return web.Response()
43 |
44 | @PromptServer.instance.routes.post('/sdapi/v1/interrupt')
45 | async def interrupt_handler(request):
46 | nodes.interrupt_processing()
47 | return web.Response()
48 |
49 | @PromptServer.instance.routes.get('/sdapi/v1/options')
50 | async def options_handler(request):
51 | return get_json_response('options.json')
52 |
53 | @PromptServer.instance.routes.post('/sdapi/v1/options')
54 | async def options_post_handler(request):
55 | if json_cache.get('options.json', None) is None:
56 | return web.Response()
57 | new_data = await request.json()
58 | json_cache['options.json'].update(new_data)
59 | return web.Response()
60 |
61 | @PromptServer.instance.routes.get('/sdapi/v1/samplers')
62 | async def samplers_handler(request):
63 | return get_json_response('samplers.json')
64 |
65 | @PromptServer.instance.routes.get('/sdapi/v1/sd-models')
66 | async def sd_models_handler(request):
67 | return get_json_response('sd-models.json')
68 |
69 | @PromptServer.instance.routes.get('/sdapi/v1/upscalers')
70 | async def upscalers_handler(request):
71 | return get_json_response('upscalers.json')
72 |
73 | @PromptServer.instance.routes.get('/sdapi/v1/sd-vae')
74 | async def sd_vae_handler(request):
75 | return get_json_response('sd-vae.json')
76 |
77 | @PromptServer.instance.routes.get('/controlnet/model_list')
78 | async def controlnet_model_list_handler(request):
79 | return get_json_response('controlnet_model_list.json')
80 |
81 | @PromptServer.instance.routes.get('/controlnet/module_list')
82 | async def controlnet_module_list_handler(request):
83 | return get_json_response('controlnet_module_list.json')
84 |
85 | @PromptServer.instance.routes.post('/sdapi/v1/txt2img')
86 | async def txt2img_handler(request):
87 | json_data = await request.json()
88 | random_id = "".join(random.choice(string.ascii_letters) for i in range(10))
89 | image_bytes_list, image_mask_bytes_list = get_controlnet_image_list(json_data)
90 | await upload_image_list(image_bytes_list, FILENAME_FORMAT_CONTROLNET_PREFIX, random_id, ".png")
91 | await upload_image_list(image_mask_bytes_list, FILENAME_FORMAT_CONTROLNET_PREFIX, random_id, "_mask.png")
92 | await ws.run_prompt(random_id, json_data)
93 | images = await find_output_image_to_b64(FILENAME_FORMAT_OUTPUT_PREFIX + f"{random_id}_")
94 | return web.Response(body=json.dumps({'images': images}), content_type='application/json')
95 |
96 | @PromptServer.instance.routes.post('/sdapi/v1/img2img')
97 | async def img2img_handler(request):
98 | json_data = await request.json()
99 | random_id = "".join(random.choice(string.ascii_letters) for i in range(10))
100 | init_image_list = get_init_image_list(json_data)
101 | await upload_image_list(init_image_list, FILENAME_FORMAT_INIT_PREFIX, random_id, ".png")
102 | init_mask_list = get_init_image_mask_list(json_data)
103 | await upload_image_list(init_mask_list, FILENAME_FORMAT_INIT_PREFIX, random_id, "_mask.png")
104 | image_bytes_list, image_mask_bytes_list = get_controlnet_image_list(json_data)
105 | await upload_image_list(image_bytes_list, FILENAME_FORMAT_CONTROLNET_PREFIX, random_id, ".png")
106 | await upload_image_list(image_mask_bytes_list, FILENAME_FORMAT_CONTROLNET_PREFIX, random_id, "_mask.png")
107 | await ws.run_prompt(random_id, json_data)
108 | images = await find_output_image_to_b64(FILENAME_FORMAT_OUTPUT_PREFIX + f"{random_id}_")
109 | return web.Response(body=json.dumps({'images': images}), content_type='application/json')
110 |
111 | @PromptServer.instance.routes.get('/sdapi/v1/progress')
112 | async def progress_handler(request):
113 | # json_data = await request.json()
114 | return web.Response()
115 |
116 | async def upload_image_list(image_bytes_list, prefix, random_id, postfix):
117 | if not image_bytes_list:
118 | print(f"No images to upload for {postfix}. Continuing without it.")
119 | return
120 | if isinstance(image_bytes_list, str):
121 | image_bytes_list = [image_bytes_list]
122 | # Filter out None values
123 | image_bytes_list = [image for image in image_bytes_list if image is not None]
124 | if not image_bytes_list:
125 | print(f"No valid images to upload for {postfix}. Continuing without it.")
126 | return
127 | prefix_random_id = prefix + f"{random_id}_"
128 | input_dir = folder_paths.get_input_directory()
129 | input_files = [f for f in os.listdir(input_dir) if f.startswith(prefix)]
130 | try:
131 | for input_file in input_files:
132 | if input_file.startswith(prefix_random_id):
133 | continue
134 | os.remove(os.path.join(input_dir, input_file))
135 | except:
136 | pass
137 | for index in range(len(image_bytes_list)):
138 | image_bytes = image_bytes_list[index]
139 | def get_form_data():
140 | form = aiohttp.FormData()
141 | filename = prefix_random_id + f"{index}" + f"{postfix}"
142 | form.add_field('image', image_bytes, filename=filename, content_type='image/png')
143 | form.add_field('overwrite', 'true')
144 | return form
145 | async with aiohttp.ClientSession() as session:
146 | try: #try local host first because ipv6 compatible
147 | await session.post(f'http://localhost:{PromptServer.instance.port}/upload/image', data = get_form_data())
148 | # manually throw error to test
149 | # print("Test error")
150 | # raise Exception("Test error")
151 | except:
152 | await session.post(f'http://127.0.0.1:{PromptServer.instance.port}/upload/image', data = get_form_data())
153 |
154 | async def find_output_image_to_b64(output_prefix):
155 | images = []
156 | output_dir = folder_paths.get_output_directory()
157 | output_files = [f for f in os.listdir(output_dir) if f.startswith(output_prefix)]
158 | output_files.sort()
159 | if len(output_files) <= 0:
160 | image = Image.new('RGB', (1, 1), (255, 255, 255))
161 | images.append(encode_pil_to_base64(image))
162 | return images
163 | for output_file in output_files:
164 | with open(os.path.join(output_dir, output_file), 'rb') as f:
165 | output_bytes = f.read()
166 | image = Image.open(io.BytesIO(output_bytes))
167 | images.append(encode_pil_to_base64(image))
168 | return images
169 |
170 | def get_init_image_mask_list(json_data):
171 | mask_bytes_list = []
172 | init_mask = json_data.get('mask', None)
173 | if init_mask is None:
174 | return mask_bytes_list
175 | mask_bytes = base64.b64decode(init_mask)
176 | mask_bytes_list.append(mask_bytes)
177 | return mask_bytes_list
178 |
179 | def get_init_image_list(json_data):
180 | image_bytes_list = []
181 | init_images = json_data.get('init_images', None)
182 | if init_images is None:
183 | return image_bytes_list
184 | for image in init_images:
185 | image_bytes = base64.b64decode(image)
186 | image_bytes_list.append(image_bytes)
187 | return image_bytes_list
188 |
189 | def get_controlnet_mask_list(json_data):
190 | alwayson_scripts = json_data.get('alwayson_scripts', None)
191 | if alwayson_scripts is None:
192 | return []
193 | controlnet = alwayson_scripts.get('controlnet', None)
194 | if controlnet is None:
195 | return []
196 | args = controlnet.get('args', None)
197 | if args is None:
198 | return []
199 | if len(args) <= 0:
200 | return []
201 | mask_bytes_list = []
202 | for arg in args:
203 | mask_b64 = arg.get('image_mask', None)
204 | if mask_b64 is None:
205 | mask_bytes_list.append(None)
206 | continue
207 | mask_bytes = base64.b64decode(mask_b64)
208 | mask_bytes_list.append(mask_bytes)
209 | return mask_bytes_list
210 |
211 | def get_controlnet_image_list(json_data):
212 | alwayson_scripts = json_data.get('alwayson_scripts', None)
213 | if alwayson_scripts is None:
214 | return []
215 | controlnet = alwayson_scripts.get('controlnet', None)
216 | if controlnet is None:
217 | return []
218 | args = controlnet.get('args', None)
219 | if args is None:
220 | return []
221 | if len(args) <= 0:
222 | return []
223 | image_bytes_list = []
224 | for arg in args:
225 | image_b64 = arg.get('image', None)
226 | if image_b64 is None:
227 | image_bytes_list.append(None)
228 | continue
229 | image_bytes = base64.b64decode(image_b64)
230 | image_bytes_list.append(image_bytes)
231 | image_mask_bytes_list = []
232 | for arg in args:
233 | image_mask_b64 = arg.get('image_mask', None)
234 | if image_mask_b64 is None:
235 | image_mask_bytes_list.append(None)
236 | continue
237 | image_mask_bytes = base64.b64decode(image_mask_b64)
238 | image_mask_bytes_list.append(image_mask_bytes)
239 | return image_bytes_list, image_mask_bytes_list
240 |
241 | def encode_pil_to_base64(image):
242 | with io.BytesIO() as output_bytes:
243 | if isinstance(image, str):
244 | return image
245 | if isinstance(image, np.ndarray):
246 | image = Image.fromarray(image)
247 | use_metadata = False
248 | metadata = PngImagePlugin.PngInfo()
249 | for key, value in image.info.items():
250 | if isinstance(key, str) and isinstance(value, str):
251 | metadata.add_text(key, value)
252 | use_metadata = True
253 | image.save(output_bytes, format="PNG", pnginfo=(metadata if use_metadata else None), quality=100)
254 | bytes_data = output_bytes.getvalue()
255 | return base64.b64encode(bytes_data).decode('ascii')
256 |
--------------------------------------------------------------------------------
/samples/ProjectorzInpaint_Sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "last_node_id": 29,
3 | "last_link_id": 35,
4 | "nodes": [
5 | {
6 | "id": 11,
7 | "type": "KSampler",
8 | "pos": [
9 | 1250,
10 | 450
11 | ],
12 | "size": {
13 | "0": 315,
14 | "1": 474
15 | },
16 | "flags": {},
17 | "order": 7,
18 | "mode": 0,
19 | "inputs": [
20 | {
21 | "name": "model",
22 | "type": "MODEL",
23 | "link": 11
24 | },
25 | {
26 | "name": "positive",
27 | "type": "CONDITIONING",
28 | "link": 31,
29 | "slot_index": 1
30 | },
31 | {
32 | "name": "negative",
33 | "type": "CONDITIONING",
34 | "link": 13,
35 | "slot_index": 2
36 | },
37 | {
38 | "name": "latent_image",
39 | "type": "LATENT",
40 | "link": 35
41 | }
42 | ],
43 | "outputs": [
44 | {
45 | "name": "LATENT",
46 | "type": "LATENT",
47 | "links": [
48 | 23
49 | ],
50 | "shape": 3,
51 | "slot_index": 0
52 | }
53 | ],
54 | "properties": {
55 | "Node name for S&R": "KSampler"
56 | },
57 | "widgets_values": [
58 | 0,
59 | "fixed",
60 | 15,
61 | 8,
62 | "dpmpp_2m",
63 | "karras",
64 | 1
65 | ]
66 | },
67 | {
68 | "id": 13,
69 | "type": "CLIPTextEncode",
70 | "pos": [
71 | 250,
72 | 700
73 | ],
74 | "size": {
75 | "0": 400,
76 | "1": 200
77 | },
78 | "flags": {},
79 | "order": 5,
80 | "mode": 0,
81 | "inputs": [
82 | {
83 | "name": "clip",
84 | "type": "CLIP",
85 | "link": 17
86 | },
87 | {
88 | "name": "text",
89 | "type": "STRING",
90 | "link": 18,
91 | "widget": {
92 | "name": "text"
93 | }
94 | }
95 | ],
96 | "outputs": [
97 | {
98 | "name": "CONDITIONING",
99 | "type": "CONDITIONING",
100 | "links": [
101 | 13
102 | ],
103 | "shape": 3
104 | }
105 | ],
106 | "properties": {
107 | "Node name for S&R": "CLIPTextEncode"
108 | },
109 | "widgets_values": [
110 | "bad art"
111 | ]
112 | },
113 | {
114 | "id": 20,
115 | "type": "VAEDecode",
116 | "pos": [
117 | 1600,
118 | 450
119 | ],
120 | "size": {
121 | "0": 210,
122 | "1": 46
123 | },
124 | "flags": {},
125 | "order": 8,
126 | "mode": 0,
127 | "inputs": [
128 | {
129 | "name": "samples",
130 | "type": "LATENT",
131 | "link": 23
132 | },
133 | {
134 | "name": "vae",
135 | "type": "VAE",
136 | "link": 24
137 | }
138 | ],
139 | "outputs": [
140 | {
141 | "name": "IMAGE",
142 | "type": "IMAGE",
143 | "links": [
144 | 28,
145 | 29
146 | ],
147 | "shape": 3,
148 | "slot_index": 0
149 | }
150 | ],
151 | "properties": {
152 | "Node name for S&R": "VAEDecode"
153 | }
154 | },
155 | {
156 | "id": 23,
157 | "type": "ProjectorzOutput",
158 | "pos": [
159 | 1850,
160 | 450
161 | ],
162 | "size": {
163 | "0": 315,
164 | "1": 58
165 | },
166 | "flags": {},
167 | "order": 9,
168 | "mode": 0,
169 | "inputs": [
170 | {
171 | "name": "images",
172 | "type": "IMAGE",
173 | "link": 28
174 | }
175 | ],
176 | "properties": {
177 | "Node name for S&R": "ProjectorzOutput"
178 | },
179 | "widgets_values": [
180 | "ProjectorOutputBlob_KlYMuxgpch_"
181 | ]
182 | },
183 | {
184 | "id": 24,
185 | "type": "SaveImage",
186 | "pos": [
187 | 1850,
188 | 550
189 | ],
190 | "size": {
191 | "0": 315,
192 | "1": 270
193 | },
194 | "flags": {},
195 | "order": 10,
196 | "mode": 0,
197 | "inputs": [
198 | {
199 | "name": "images",
200 | "type": "IMAGE",
201 | "link": 29
202 | }
203 | ],
204 | "properties": {},
205 | "widgets_values": [
206 | "ComfyUI"
207 | ]
208 | },
209 | {
210 | "id": 26,
211 | "type": "ProjectorzParameter",
212 | "pos": [
213 | -150,
214 | 450
215 | ],
216 | "size": {
217 | "0": 315,
218 | "1": 82
219 | },
220 | "flags": {},
221 | "order": 0,
222 | "mode": 0,
223 | "outputs": [
224 | {
225 | "name": "STRING",
226 | "type": "STRING",
227 | "links": [
228 | 16
229 | ],
230 | "shape": 3,
231 | "slot_index": 0
232 | }
233 | ],
234 | "properties": {
235 | "Node name for S&R": "ProjectorzParameter"
236 | },
237 | "widgets_values": [
238 | "prompt",
239 | "wood_door"
240 | ]
241 | },
242 | {
243 | "id": 27,
244 | "type": "ProjectorzParameter",
245 | "pos": [
246 | -150,
247 | 700
248 | ],
249 | "size": {
250 | "0": 315,
251 | "1": 82
252 | },
253 | "flags": {},
254 | "order": 1,
255 | "mode": 0,
256 | "outputs": [
257 | {
258 | "name": "STRING",
259 | "type": "STRING",
260 | "links": [
261 | 18
262 | ],
263 | "shape": 3,
264 | "slot_index": 0
265 | }
266 | ],
267 | "properties": {
268 | "Node name for S&R": "ProjectorzParameter"
269 | },
270 | "widgets_values": [
271 | "negative_prompt",
272 | "bad art"
273 | ]
274 | },
275 | {
276 | "id": 12,
277 | "type": "CLIPTextEncode",
278 | "pos": [
279 | 250,
280 | 450
281 | ],
282 | "size": {
283 | "0": 400,
284 | "1": 200
285 | },
286 | "flags": {},
287 | "order": 4,
288 | "mode": 0,
289 | "inputs": [
290 | {
291 | "name": "clip",
292 | "type": "CLIP",
293 | "link": 15
294 | },
295 | {
296 | "name": "text",
297 | "type": "STRING",
298 | "link": 16,
299 | "widget": {
300 | "name": "text"
301 | }
302 | }
303 | ],
304 | "outputs": [
305 | {
306 | "name": "CONDITIONING",
307 | "type": "CONDITIONING",
308 | "links": [
309 | 31
310 | ],
311 | "shape": 3,
312 | "slot_index": 0
313 | }
314 | ],
315 | "properties": {
316 | "Node name for S&R": "CLIPTextEncode"
317 | },
318 | "widgets_values": [
319 | "wood door"
320 | ]
321 | },
322 | {
323 | "id": 19,
324 | "type": "CheckpointLoaderSimple",
325 | "pos": [
326 | -150,
327 | 300
328 | ],
329 | "size": {
330 | "0": 315,
331 | "1": 98
332 | },
333 | "flags": {},
334 | "order": 2,
335 | "mode": 0,
336 | "outputs": [
337 | {
338 | "name": "MODEL",
339 | "type": "MODEL",
340 | "links": [
341 | 11
342 | ],
343 | "shape": 3,
344 | "slot_index": 0
345 | },
346 | {
347 | "name": "CLIP",
348 | "type": "CLIP",
349 | "links": [
350 | 15,
351 | 17
352 | ],
353 | "shape": 3,
354 | "slot_index": 1
355 | },
356 | {
357 | "name": "VAE",
358 | "type": "VAE",
359 | "links": [
360 | 24,
361 | 33
362 | ],
363 | "shape": 3,
364 | "slot_index": 2
365 | }
366 | ],
367 | "properties": {
368 | "Node name for S&R": "CheckpointLoaderSimple"
369 | },
370 | "widgets_values": [
371 | "AOM3.safetensors"
372 | ]
373 | },
374 | {
375 | "id": 28,
376 | "type": "ProjectorzInitInput",
377 | "pos": [
378 | 250,
379 | 950
380 | ],
381 | "size": {
382 | "0": 315,
383 | "1": 102
384 | },
385 | "flags": {},
386 | "order": 3,
387 | "mode": 0,
388 | "outputs": [
389 | {
390 | "name": "IMAGE",
391 | "type": "IMAGE",
392 | "links": [
393 | 32
394 | ],
395 | "shape": 3,
396 | "slot_index": 0
397 | },
398 | {
399 | "name": "MASK",
400 | "type": "MASK",
401 | "links": [
402 | 34
403 | ],
404 | "shape": 3,
405 | "slot_index": 1
406 | }
407 | ],
408 | "properties": {
409 | "Node name for S&R": "ProjectorzInitInput"
410 | },
411 | "widgets_values": [
412 | 0,
413 | "ProjectorInitBlob_KlYMuxgpch_"
414 | ]
415 | },
416 | {
417 | "id": 29,
418 | "type": "VAEEncodeForInpaint",
419 | "pos": [
420 | 700,
421 | 950
422 | ],
423 | "size": {
424 | "0": 315,
425 | "1": 98
426 | },
427 | "flags": {},
428 | "order": 6,
429 | "mode": 0,
430 | "inputs": [
431 | {
432 | "name": "pixels",
433 | "type": "IMAGE",
434 | "link": 32
435 | },
436 | {
437 | "name": "vae",
438 | "type": "VAE",
439 | "link": 33
440 | },
441 | {
442 | "name": "mask",
443 | "type": "MASK",
444 | "link": 34
445 | }
446 | ],
447 | "outputs": [
448 | {
449 | "name": "LATENT",
450 | "type": "LATENT",
451 | "links": [
452 | 35
453 | ],
454 | "shape": 3,
455 | "slot_index": 0
456 | }
457 | ],
458 | "properties": {
459 | "Node name for S&R": "VAEEncodeForInpaint"
460 | },
461 | "widgets_values": [
462 | 0
463 | ]
464 | }
465 | ],
466 | "links": [
467 | [
468 | 11,
469 | 19,
470 | 0,
471 | 11,
472 | 0,
473 | "MODEL"
474 | ],
475 | [
476 | 13,
477 | 13,
478 | 0,
479 | 11,
480 | 2,
481 | "CONDITIONING"
482 | ],
483 | [
484 | 15,
485 | 19,
486 | 1,
487 | 12,
488 | 0,
489 | "CLIP"
490 | ],
491 | [
492 | 16,
493 | 26,
494 | 0,
495 | 12,
496 | 1,
497 | "STRING"
498 | ],
499 | [
500 | 17,
501 | 19,
502 | 1,
503 | 13,
504 | 0,
505 | "CLIP"
506 | ],
507 | [
508 | 18,
509 | 27,
510 | 0,
511 | 13,
512 | 1,
513 | "STRING"
514 | ],
515 | [
516 | 23,
517 | 11,
518 | 0,
519 | 20,
520 | 0,
521 | "LATENT"
522 | ],
523 | [
524 | 24,
525 | 19,
526 | 2,
527 | 20,
528 | 1,
529 | "VAE"
530 | ],
531 | [
532 | 28,
533 | 20,
534 | 0,
535 | 23,
536 | 0,
537 | "IMAGE"
538 | ],
539 | [
540 | 29,
541 | 20,
542 | 0,
543 | 24,
544 | 0,
545 | "IMAGE"
546 | ],
547 | [
548 | 31,
549 | 12,
550 | 0,
551 | 11,
552 | 1,
553 | "CONDITIONING"
554 | ],
555 | [
556 | 32,
557 | 28,
558 | 0,
559 | 29,
560 | 0,
561 | "IMAGE"
562 | ],
563 | [
564 | 33,
565 | 19,
566 | 2,
567 | 29,
568 | 1,
569 | "VAE"
570 | ],
571 | [
572 | 34,
573 | 28,
574 | 1,
575 | 29,
576 | 2,
577 | "MASK"
578 | ],
579 | [
580 | 35,
581 | 29,
582 | 0,
583 | 11,
584 | 3,
585 | "LATENT"
586 | ]
587 | ],
588 | "groups": [],
589 | "config": {},
590 | "extra": {
591 | "workspace_info": {
592 | "id": "YqwUc-glSs6ONzElPy_N4"
593 | }
594 | },
595 | "version": 0.4
596 | }
--------------------------------------------------------------------------------
/options.json:
--------------------------------------------------------------------------------
1 | {
2 | "samples_save": true,
3 | "samples_format": "png",
4 | "samples_filename_pattern": "",
5 | "save_images_add_number": true,
6 | "save_images_replace_action": "Replace",
7 | "grid_save": true,
8 | "grid_format": "png",
9 | "grid_extended_filename": false,
10 | "grid_only_if_multiple": true,
11 | "grid_prevent_empty_spots": false,
12 | "grid_zip_filename_pattern": "",
13 | "n_rows": -1.0,
14 | "font": "",
15 | "grid_text_active_color": "#000000",
16 | "grid_text_inactive_color": "#999999",
17 | "grid_background_color": "#ffffff",
18 | "save_images_before_face_restoration": false,
19 | "save_images_before_highres_fix": false,
20 | "save_images_before_color_correction": false,
21 | "save_mask": false,
22 | "save_mask_composite": false,
23 | "jpeg_quality": 80.0,
24 | "webp_lossless": false,
25 | "export_for_4chan": true,
26 | "img_downscale_threshold": 4.0,
27 | "target_side_length": 4000.0,
28 | "img_max_size_mp": 200.0,
29 | "use_original_name_batch": true,
30 | "use_upscaler_name_as_suffix": false,
31 | "save_selected_only": true,
32 | "save_init_img": false,
33 | "temp_dir": "",
34 | "clean_temp_dir_at_start": false,
35 | "save_incomplete_images": false,
36 | "notification_audio": true,
37 | "notification_volume": 100.0,
38 | "outdir_samples": "",
39 | "outdir_txt2img_samples": "output\\txt2img-images",
40 | "outdir_img2img_samples": "output\\img2img-images",
41 | "outdir_extras_samples": "output\\extras-images",
42 | "outdir_grids": "",
43 | "outdir_txt2img_grids": "output\\txt2img-grids",
44 | "outdir_img2img_grids": "output\\img2img-grids",
45 | "outdir_save": "log\\images",
46 | "outdir_init_images": "output\\init-images",
47 | "save_to_dirs": true,
48 | "grid_save_to_dirs": true,
49 | "use_save_to_dirs_for_ui": false,
50 | "directories_filename_pattern": "[date]",
51 | "directories_max_prompt_words": 8.0,
52 | "ESRGAN_tile": 192.0,
53 | "ESRGAN_tile_overlap": 8.0,
54 | "realesrgan_enabled_models": [
55 | "R-ESRGAN 4x+",
56 | "R-ESRGAN 4x+ Anime6B"
57 | ],
58 | "dat_enabled_models": [
59 | "DAT x2",
60 | "DAT x3",
61 | "DAT x4"
62 | ],
63 | "DAT_tile": 192.0,
64 | "DAT_tile_overlap": 8.0,
65 | "upscaler_for_img2img": "R-ESRGAN 4x+",
66 | "face_restoration": false,
67 | "face_restoration_model": "CodeFormer",
68 | "code_former_weight": 0.5,
69 | "face_restoration_unload": false,
70 | "auto_launch_browser": "Local",
71 | "enable_console_prompts": false,
72 | "show_warnings": false,
73 | "show_gradio_deprecation_warnings": true,
74 | "memmon_poll_rate": 8.0,
75 | "samples_log_stdout": false,
76 | "multiple_tqdm": true,
77 | "enable_upscale_progressbar": true,
78 | "print_hypernet_extra": false,
79 | "list_hidden_files": true,
80 | "disable_mmap_load_safetensors": false,
81 | "hide_ldm_prints": true,
82 | "dump_stacks_on_signal": false,
83 | "api_enable_requests": true,
84 | "api_forbid_local_requests": true,
85 | "api_useragent": "",
86 | "unload_models_when_training": false,
87 | "pin_memory": false,
88 | "save_optimizer_state": false,
89 | "save_training_settings_to_txt": true,
90 | "dataset_filename_word_regex": "",
91 | "dataset_filename_join_string": " ",
92 | "training_image_repeats_per_epoch": 1.0,
93 | "training_write_csv_every": 500.0,
94 | "training_xattention_optimizations": false,
95 | "training_enable_tensorboard": false,
96 | "training_tensorboard_save_images": false,
97 | "training_tensorboard_flush_every": 120.0,
98 | "sd_model_checkpoint": "Configure In ComfyUI",
99 | "sd_checkpoints_limit": 1.0,
100 | "sd_checkpoints_keep_in_cpu": true,
101 | "sd_checkpoint_cache": 0,
102 | "sd_unet": "Automatic",
103 | "enable_quantization": false,
104 | "emphasis": "Original",
105 | "enable_batch_seeds": true,
106 | "comma_padding_backtrack": 20.0,
107 | "CLIP_stop_at_last_layers": 1.0,
108 | "upcast_attn": false,
109 | "randn_source": "GPU",
110 | "tiling": false,
111 | "hires_fix_refiner_pass": "first pass",
112 | "sdxl_crop_top": 0.0,
113 | "sdxl_crop_left": 0.0,
114 | "sdxl_refiner_low_aesthetic_score": 2.5,
115 | "sdxl_refiner_high_aesthetic_score": 6.0,
116 | "sd_vae_explanation": "VAE is a neural network that transforms a standard RGB\nimage into latent space representation and back. Latent space representation is what stable diffusion is working on during sampling\n(i.e. when the progress bar is between empty and full). For txt2img, VAE is used to create a resulting image after the sampling is finished.\nFor img2img, VAE is used to process user's input image before the sampling, and to create an image after sampling.",
117 | "sd_vae_checkpoint_cache": 0,
118 | "sd_vae": "None",
119 | "sd_vae_overrides_per_model_preferences": true,
120 | "auto_vae_precision_bfloat16": false,
121 | "auto_vae_precision": true,
122 | "sd_vae_encode_method": "Full",
123 | "sd_vae_decode_method": "Full",
124 | "inpainting_mask_weight": 1.0,
125 | "initial_noise_multiplier": 1.0,
126 | "img2img_extra_noise": 0,
127 | "img2img_color_correction": false,
128 | "img2img_fix_steps": false,
129 | "img2img_background_color": "#ffffff",
130 | "img2img_editor_height": 720.0,
131 | "img2img_sketch_default_brush_color": "#ffffff",
132 | "img2img_inpaint_mask_brush_color": "#ffffff",
133 | "img2img_inpaint_sketch_default_brush_color": "#ffffff",
134 | "return_mask": false,
135 | "return_mask_composite": false,
136 | "img2img_batch_show_results_limit": 32.0,
137 | "overlay_inpaint": true,
138 | "cross_attention_optimization": "Automatic",
139 | "s_min_uncond": 0,
140 | "token_merging_ratio": 0,
141 | "token_merging_ratio_img2img": 0,
142 | "token_merging_ratio_hr": 0,
143 | "pad_cond_uncond": false,
144 | "pad_cond_uncond_v0": false,
145 | "persistent_cond_cache": true,
146 | "batch_cond_uncond": true,
147 | "fp8_storage": "Disable",
148 | "cache_fp16_weight": false,
149 | "auto_backcompat": true,
150 | "use_old_emphasis_implementation": false,
151 | "use_old_karras_scheduler_sigmas": false,
152 | "no_dpmpp_sde_batch_determinism": false,
153 | "use_old_hires_fix_width_height": false,
154 | "dont_fix_second_order_samplers_schedule": false,
155 | "hires_fix_use_firstpass_conds": false,
156 | "use_old_scheduling": false,
157 | "use_downcasted_alpha_bar": false,
158 | "interrogate_keep_models_in_memory": false,
159 | "interrogate_return_ranks": false,
160 | "interrogate_clip_num_beams": 1.0,
161 | "interrogate_clip_min_length": 24.0,
162 | "interrogate_clip_max_length": 48.0,
163 | "interrogate_clip_dict_limit": 1500.0,
164 | "interrogate_clip_skip_categories": [],
165 | "interrogate_deepbooru_score_threshold": 0.5,
166 | "deepbooru_sort_alpha": true,
167 | "deepbooru_use_spaces": true,
168 | "deepbooru_escape": true,
169 | "deepbooru_filter_tags": "",
170 | "extra_networks_show_hidden_directories": true,
171 | "extra_networks_dir_button_function": false,
172 | "extra_networks_hidden_models": "When searched",
173 | "extra_networks_default_multiplier": 1.0,
174 | "extra_networks_card_width": 0.0,
175 | "extra_networks_card_height": 0.0,
176 | "extra_networks_card_text_scale": 1.0,
177 | "extra_networks_card_show_desc": true,
178 | "extra_networks_card_description_is_html": false,
179 | "extra_networks_card_order_field": "Path",
180 | "extra_networks_card_order": "Ascending",
181 | "extra_networks_tree_view_default_enabled": false,
182 | "extra_networks_add_text_separator": " ",
183 | "ui_extra_networks_tab_reorder": "",
184 | "textual_inversion_print_at_load": false,
185 | "textual_inversion_add_hashes_to_infotext": true,
186 | "sd_hypernetwork": "None",
187 | "keyedit_precision_attention": 0.1,
188 | "keyedit_precision_extra": 0.05,
189 | "keyedit_delimiters": ".,\/!?%^*;:{}=`~() ",
190 | "keyedit_delimiters_whitespace": [
191 | "Tab",
192 | "Carriage Return",
193 | "Line Feed"
194 | ],
195 | "keyedit_move": true,
196 | "disable_token_counters": false,
197 | "include_styles_into_token_counters": true,
198 | "return_grid": true,
199 | "do_not_show_images": false,
200 | "js_modal_lightbox": true,
201 | "js_modal_lightbox_initially_zoomed": true,
202 | "js_modal_lightbox_gamepad": false,
203 | "js_modal_lightbox_gamepad_repeat": 250.0,
204 | "sd_webui_modal_lightbox_icon_opacity": 1.0,
205 | "sd_webui_modal_lightbox_toolbar_opacity": 0.9,
206 | "gallery_height": "",
207 | "open_dir_button_choice": "Subdirectory",
208 | "compact_prompt_box": false,
209 | "samplers_in_dropdown": true,
210 | "dimensions_and_batch_together": true,
211 | "sd_checkpoint_dropdown_use_short": false,
212 | "hires_fix_show_sampler": false,
213 | "hires_fix_show_prompts": false,
214 | "txt2img_settings_accordion": false,
215 | "img2img_settings_accordion": false,
216 | "interrupt_after_current": true,
217 | "localization": "None",
218 | "quicksettings_list": [
219 | "sd_model_checkpoint",
220 | "sd_vae",
221 | "CLIP_stop_at_last_layers"
222 | ],
223 | "ui_tab_order": [],
224 | "hidden_tabs": [],
225 | "ui_reorder_list": [],
226 | "gradio_theme": "Default",
227 | "gradio_themes_cache": true,
228 | "show_progress_in_title": true,
229 | "send_seed": true,
230 | "send_size": true,
231 | "infotext_explanation": "Infotext is what this software calls the text that contains generation parameters and can be used to generate the same picture again.\nIt is displayed in UI below the image. To use infotext, paste it into the prompt and click the ↙ paste button.",
232 | "enable_pnginfo": true,
233 | "save_txt": false,
234 | "add_model_name_to_info": true,
235 | "add_model_hash_to_info": true,
236 | "add_vae_name_to_info": true,
237 | "add_vae_hash_to_info": true,
238 | "add_user_name_to_info": false,
239 | "add_version_to_infotext": true,
240 | "disable_weights_auto_swap": true,
241 | "infotext_skip_pasting": [],
242 | "infotext_styles": "Apply if any",
243 | "show_progressbar": true,
244 | "live_previews_enable": true,
245 | "live_previews_image_format": "png",
246 | "show_progress_grid": true,
247 | "show_progress_every_n_steps": 10.0,
248 | "show_progress_type": "Approx NN",
249 | "live_preview_allow_lowvram_full": false,
250 | "live_preview_content": "Prompt",
251 | "live_preview_refresh_period": 1000.0,
252 | "live_preview_fast_interrupt": false,
253 | "js_live_preview_in_modal_lightbox": false,
254 | "hide_samplers": [],
255 | "eta_ddim": 0,
256 | "eta_ancestral": 1.0,
257 | "ddim_discretize": "uniform",
258 | "s_churn": 0,
259 | "s_tmin": 0,
260 | "s_tmax": 0,
261 | "s_noise": 1.0,
262 | "k_sched_type": "Automatic",
263 | "sigma_min": 0.0,
264 | "sigma_max": 0.0,
265 | "rho": 0.0,
266 | "eta_noise_seed_delta": 0,
267 | "always_discard_next_to_last_sigma": false,
268 | "sgm_noise_multiplier": false,
269 | "uni_pc_variant": "bh1",
270 | "uni_pc_skip_type": "time_uniform",
271 | "uni_pc_order": 3.0,
272 | "uni_pc_lower_order_final": true,
273 | "sd_noise_schedule": "Default",
274 | "postprocessing_enable_in_main_ui": [],
275 | "postprocessing_operation_order": [],
276 | "upscaling_max_images_in_cache": 5.0,
277 | "postprocessing_existing_caption_action": "Ignore",
278 | "disabled_extensions": [],
279 | "disable_all_extensions": "none",
280 | "restore_config_state_file": "",
281 | "sd_checkpoint_hash": "d124fc18f0232d7f0a2a70358cdb1288af9e1ee8596200f50f0936be59514f6d",
282 | "sd_lora": "None",
283 | "lora_preferred_name": "Alias from file",
284 | "lora_add_hashes_to_infotext": true,
285 | "lora_show_all": false,
286 | "lora_hide_unknown_for_versions": [],
287 | "lora_in_memory_limit": 0,
288 | "lora_not_found_warning_console": false,
289 | "lora_not_found_gradio_warning": false,
290 | "lora_functional": false,
291 | "canvas_hotkey_zoom": "Alt",
292 | "canvas_hotkey_adjust": "Ctrl",
293 | "canvas_hotkey_shrink_brush": "Q",
294 | "canvas_hotkey_grow_brush": "W",
295 | "canvas_hotkey_move": "F",
296 | "canvas_hotkey_fullscreen": "S",
297 | "canvas_hotkey_reset": "R",
298 | "canvas_hotkey_overlap": "O",
299 | "canvas_show_tooltip": true,
300 | "canvas_auto_expand": true,
301 | "canvas_blur_prompt": false,
302 | "canvas_disabled_functions": [
303 | "Overlap"
304 | ],
305 | "settings_in_ui": "This page allows you to add some settings to the main interface of txt2img and img2img tabs.",
306 | "extra_options_txt2img": [],
307 | "extra_options_img2img": [],
308 | "extra_options_cols": 1.0,
309 | "extra_options_accordion": false
310 | }
--------------------------------------------------------------------------------
/samples/ProjectorzGen_Sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "last_node_id": 47,
3 | "last_link_id": 52,
4 | "nodes": [
5 | {
6 | "id": 35,
7 | "type": "ProjectorzParameter",
8 | "pos": [
9 | -150,
10 | 1350
11 | ],
12 | "size": {
13 | "0": 315,
14 | "1": 82
15 | },
16 | "flags": {},
17 | "order": 0,
18 | "mode": 0,
19 | "outputs": [
20 | {
21 | "name": "STRING",
22 | "type": "STRING",
23 | "links": [
24 | 35
25 | ],
26 | "shape": 3,
27 | "slot_index": 0
28 | }
29 | ],
30 | "properties": {
31 | "Node name for S&R": "ProjectorzParameter"
32 | },
33 | "widgets_values": [
34 | "width",
35 | 512
36 | ]
37 | },
38 | {
39 | "id": 36,
40 | "type": "ProjectorzParameter",
41 | "pos": [
42 | -150,
43 | 1500
44 | ],
45 | "size": {
46 | "0": 315,
47 | "1": 82
48 | },
49 | "flags": {},
50 | "order": 1,
51 | "mode": 0,
52 | "outputs": [
53 | {
54 | "name": "STRING",
55 | "type": "STRING",
56 | "links": [
57 | 36
58 | ],
59 | "shape": 3,
60 | "slot_index": 0
61 | }
62 | ],
63 | "properties": {
64 | "Node name for S&R": "ProjectorzParameter"
65 | },
66 | "widgets_values": [
67 | "height",
68 | 512
69 | ]
70 | },
71 | {
72 | "id": 37,
73 | "type": "ProjectorzStringToInt",
74 | "pos": [
75 | 200,
76 | 1350
77 | ],
78 | "size": {
79 | "0": 315,
80 | "1": 58
81 | },
82 | "flags": {},
83 | "order": 7,
84 | "mode": 0,
85 | "inputs": [
86 | {
87 | "name": "string",
88 | "type": "STRING",
89 | "link": 35,
90 | "widget": {
91 | "name": "string"
92 | }
93 | }
94 | ],
95 | "outputs": [
96 | {
97 | "name": "INT",
98 | "type": "INT",
99 | "links": [
100 | 33
101 | ],
102 | "shape": 3,
103 | "slot_index": 0
104 | }
105 | ],
106 | "properties": {
107 | "Node name for S&R": "ProjectorzStringToInt"
108 | },
109 | "widgets_values": [
110 | ""
111 | ]
112 | },
113 | {
114 | "id": 38,
115 | "type": "ProjectorzStringToInt",
116 | "pos": [
117 | 200,
118 | 1500
119 | ],
120 | "size": {
121 | "0": 315,
122 | "1": 58
123 | },
124 | "flags": {},
125 | "order": 8,
126 | "mode": 0,
127 | "inputs": [
128 | {
129 | "name": "string",
130 | "type": "STRING",
131 | "link": 36,
132 | "widget": {
133 | "name": "string"
134 | }
135 | }
136 | ],
137 | "outputs": [
138 | {
139 | "name": "INT",
140 | "type": "INT",
141 | "links": [
142 | 34
143 | ],
144 | "shape": 3,
145 | "slot_index": 0
146 | }
147 | ],
148 | "properties": {
149 | "Node name for S&R": "ProjectorzStringToInt"
150 | },
151 | "widgets_values": [
152 | ""
153 | ]
154 | },
155 | {
156 | "id": 34,
157 | "type": "EmptyLatentImage",
158 | "pos": [
159 | 550,
160 | 1350
161 | ],
162 | "size": {
163 | "0": 315,
164 | "1": 106
165 | },
166 | "flags": {},
167 | "order": 12,
168 | "mode": 0,
169 | "inputs": [
170 | {
171 | "name": "width",
172 | "type": "INT",
173 | "link": 33,
174 | "widget": {
175 | "name": "width"
176 | }
177 | },
178 | {
179 | "name": "height",
180 | "type": "INT",
181 | "link": 34,
182 | "widget": {
183 | "name": "height"
184 | }
185 | }
186 | ],
187 | "outputs": [
188 | {
189 | "name": "LATENT",
190 | "type": "LATENT",
191 | "links": [
192 | 37
193 | ],
194 | "shape": 3,
195 | "slot_index": 0
196 | }
197 | ],
198 | "properties": {
199 | "Node name for S&R": "EmptyLatentImage"
200 | },
201 | "widgets_values": [
202 | 2048,
203 | 2048,
204 | 1
205 | ]
206 | },
207 | {
208 | "id": 31,
209 | "type": "KSampler",
210 | "pos": [
211 | 900,
212 | 850
213 | ],
214 | "size": [
215 | 315,
216 | 474
217 | ],
218 | "flags": {},
219 | "order": 14,
220 | "mode": 0,
221 | "inputs": [
222 | {
223 | "name": "model",
224 | "type": "MODEL",
225 | "link": 38
226 | },
227 | {
228 | "name": "positive",
229 | "type": "CONDITIONING",
230 | "link": 50,
231 | "slot_index": 1
232 | },
233 | {
234 | "name": "negative",
235 | "type": "CONDITIONING",
236 | "link": 32,
237 | "slot_index": 2
238 | },
239 | {
240 | "name": "latent_image",
241 | "type": "LATENT",
242 | "link": 37
243 | }
244 | ],
245 | "outputs": [
246 | {
247 | "name": "LATENT",
248 | "type": "LATENT",
249 | "links": [
250 | 41
251 | ],
252 | "shape": 3,
253 | "slot_index": 0
254 | }
255 | ],
256 | "properties": {
257 | "Node name for S&R": "KSampler"
258 | },
259 | "widgets_values": [
260 | 0,
261 | "fixed",
262 | 15,
263 | 8,
264 | "dpmpp_2m",
265 | "karras",
266 | 1
267 | ]
268 | },
269 | {
270 | "id": 33,
271 | "type": "CLIPTextEncode",
272 | "pos": [
273 | -100,
274 | 1100
275 | ],
276 | "size": [
277 | 400,
278 | 200
279 | ],
280 | "flags": {},
281 | "order": 11,
282 | "mode": 0,
283 | "inputs": [
284 | {
285 | "name": "clip",
286 | "type": "CLIP",
287 | "link": 40
288 | },
289 | {
290 | "name": "text",
291 | "type": "STRING",
292 | "link": 52,
293 | "widget": {
294 | "name": "text"
295 | }
296 | }
297 | ],
298 | "outputs": [
299 | {
300 | "name": "CONDITIONING",
301 | "type": "CONDITIONING",
302 | "links": [
303 | 32
304 | ],
305 | "shape": 3
306 | }
307 | ],
308 | "properties": {
309 | "Node name for S&R": "CLIPTextEncode"
310 | },
311 | "widgets_values": [
312 | "bad art"
313 | ]
314 | },
315 | {
316 | "id": 42,
317 | "type": "ControlNetLoader",
318 | "pos": [
319 | 350,
320 | 750
321 | ],
322 | "size": {
323 | "0": 315,
324 | "1": 58
325 | },
326 | "flags": {},
327 | "order": 2,
328 | "mode": 0,
329 | "outputs": [
330 | {
331 | "name": "CONTROL_NET",
332 | "type": "CONTROL_NET",
333 | "links": [
334 | 45
335 | ],
336 | "shape": 3,
337 | "slot_index": 0
338 | }
339 | ],
340 | "properties": {
341 | "Node name for S&R": "ControlNetLoader"
342 | },
343 | "widgets_values": [
344 | "controlnet11Models_depth.safetensors"
345 | ]
346 | },
347 | {
348 | "id": 28,
349 | "type": "PreviewImage",
350 | "pos": [
351 | 350,
352 | 450
353 | ],
354 | "size": {
355 | "0": 210,
356 | "1": 246
357 | },
358 | "flags": {},
359 | "order": 9,
360 | "mode": 0,
361 | "inputs": [
362 | {
363 | "name": "images",
364 | "type": "IMAGE",
365 | "link": 48
366 | }
367 | ],
368 | "properties": {
369 | "Node name for S&R": "PreviewImage"
370 | }
371 | },
372 | {
373 | "id": 43,
374 | "type": "ProjectorzOutput",
375 | "pos": [
376 | 1500,
377 | 850
378 | ],
379 | "size": {
380 | "0": 315,
381 | "1": 58
382 | },
383 | "flags": {},
384 | "order": 16,
385 | "mode": 0,
386 | "inputs": [
387 | {
388 | "name": "images",
389 | "type": "IMAGE",
390 | "link": 46
391 | }
392 | ],
393 | "properties": {
394 | "Node name for S&R": "ProjectorzOutput"
395 | },
396 | "widgets_values": [
397 | "ProjectorOutputBlob_euYjCUMZbQ_"
398 | ]
399 | },
400 | {
401 | "id": 40,
402 | "type": "VAEDecode",
403 | "pos": [
404 | 1250,
405 | 850
406 | ],
407 | "size": {
408 | "0": 210,
409 | "1": 46
410 | },
411 | "flags": {},
412 | "order": 15,
413 | "mode": 0,
414 | "inputs": [
415 | {
416 | "name": "samples",
417 | "type": "LATENT",
418 | "link": 41
419 | },
420 | {
421 | "name": "vae",
422 | "type": "VAE",
423 | "link": 42
424 | }
425 | ],
426 | "outputs": [
427 | {
428 | "name": "IMAGE",
429 | "type": "IMAGE",
430 | "links": [
431 | 46,
432 | 47
433 | ],
434 | "shape": 3,
435 | "slot_index": 0
436 | }
437 | ],
438 | "properties": {
439 | "Node name for S&R": "VAEDecode"
440 | }
441 | },
442 | {
443 | "id": 44,
444 | "type": "SaveImage",
445 | "pos": [
446 | 1500,
447 | 950
448 | ],
449 | "size": [
450 | 315,
451 | 270
452 | ],
453 | "flags": {},
454 | "order": 17,
455 | "mode": 0,
456 | "inputs": [
457 | {
458 | "name": "images",
459 | "type": "IMAGE",
460 | "link": 47
461 | }
462 | ],
463 | "properties": {},
464 | "widgets_values": [
465 | "ComfyUI"
466 | ]
467 | },
468 | {
469 | "id": 45,
470 | "type": "ProjectorzControlnetInput",
471 | "pos": [
472 | -50,
473 | 700
474 | ],
475 | "size": {
476 | "0": 315,
477 | "1": 102
478 | },
479 | "flags": {},
480 | "order": 3,
481 | "mode": 0,
482 | "outputs": [
483 | {
484 | "name": "IMAGE",
485 | "type": "IMAGE",
486 | "links": [
487 | 48,
488 | 49
489 | ],
490 | "shape": 3,
491 | "slot_index": 0
492 | },
493 | {
494 | "name": "MASK",
495 | "type": "MASK",
496 | "links": null,
497 | "shape": 3
498 | }
499 | ],
500 | "properties": {
501 | "Node name for S&R": "ProjectorzControlnetInput"
502 | },
503 | "widgets_values": [
504 | 0,
505 | "ProjectorControlnetBlob_euYjCUMZbQ_"
506 | ]
507 | },
508 | {
509 | "id": 41,
510 | "type": "ControlNetApply",
511 | "pos": [
512 | 350,
513 | 850
514 | ],
515 | "size": {
516 | "0": 317.4000244140625,
517 | "1": 98
518 | },
519 | "flags": {},
520 | "order": 13,
521 | "mode": 0,
522 | "inputs": [
523 | {
524 | "name": "conditioning",
525 | "type": "CONDITIONING",
526 | "link": 43
527 | },
528 | {
529 | "name": "control_net",
530 | "type": "CONTROL_NET",
531 | "link": 45
532 | },
533 | {
534 | "name": "image",
535 | "type": "IMAGE",
536 | "link": 49
537 | }
538 | ],
539 | "outputs": [
540 | {
541 | "name": "CONDITIONING",
542 | "type": "CONDITIONING",
543 | "links": [
544 | 50
545 | ],
546 | "shape": 3,
547 | "slot_index": 0
548 | }
549 | ],
550 | "properties": {
551 | "Node name for S&R": "ControlNetApply"
552 | },
553 | "widgets_values": [
554 | 1
555 | ]
556 | },
557 | {
558 | "id": 32,
559 | "type": "CLIPTextEncode",
560 | "pos": [
561 | -100,
562 | 850
563 | ],
564 | "size": [
565 | 400,
566 | 200
567 | ],
568 | "flags": {},
569 | "order": 10,
570 | "mode": 0,
571 | "inputs": [
572 | {
573 | "name": "clip",
574 | "type": "CLIP",
575 | "link": 39
576 | },
577 | {
578 | "name": "text",
579 | "type": "STRING",
580 | "link": 51,
581 | "widget": {
582 | "name": "text"
583 | }
584 | }
585 | ],
586 | "outputs": [
587 | {
588 | "name": "CONDITIONING",
589 | "type": "CONDITIONING",
590 | "links": [
591 | 43
592 | ],
593 | "shape": 3,
594 | "slot_index": 0
595 | }
596 | ],
597 | "properties": {
598 | "Node name for S&R": "CLIPTextEncode"
599 | },
600 | "widgets_values": [
601 | "wood door"
602 | ]
603 | },
604 | {
605 | "id": 39,
606 | "type": "CheckpointLoaderSimple",
607 | "pos": [
608 | -500,
609 | 700
610 | ],
611 | "size": {
612 | "0": 315,
613 | "1": 98
614 | },
615 | "flags": {},
616 | "order": 4,
617 | "mode": 0,
618 | "outputs": [
619 | {
620 | "name": "MODEL",
621 | "type": "MODEL",
622 | "links": [
623 | 38
624 | ],
625 | "shape": 3,
626 | "slot_index": 0
627 | },
628 | {
629 | "name": "CLIP",
630 | "type": "CLIP",
631 | "links": [
632 | 39,
633 | 40
634 | ],
635 | "shape": 3,
636 | "slot_index": 1
637 | },
638 | {
639 | "name": "VAE",
640 | "type": "VAE",
641 | "links": [
642 | 42
643 | ],
644 | "shape": 3,
645 | "slot_index": 2
646 | }
647 | ],
648 | "properties": {
649 | "Node name for S&R": "CheckpointLoaderSimple"
650 | },
651 | "widgets_values": [
652 | "AOM3.safetensors"
653 | ]
654 | },
655 | {
656 | "id": 46,
657 | "type": "ProjectorzParameter",
658 | "pos": [
659 | -500,
660 | 850
661 | ],
662 | "size": {
663 | "0": 315,
664 | "1": 82
665 | },
666 | "flags": {},
667 | "order": 5,
668 | "mode": 0,
669 | "outputs": [
670 | {
671 | "name": "STRING",
672 | "type": "STRING",
673 | "links": [
674 | 51
675 | ],
676 | "shape": 3,
677 | "slot_index": 0
678 | }
679 | ],
680 | "properties": {
681 | "Node name for S&R": "ProjectorzParameter"
682 | },
683 | "widgets_values": [
684 | "prompt",
685 | "wood_door"
686 | ]
687 | },
688 | {
689 | "id": 47,
690 | "type": "ProjectorzParameter",
691 | "pos": [
692 | -500,
693 | 1100
694 | ],
695 | "size": {
696 | "0": 315,
697 | "1": 82
698 | },
699 | "flags": {},
700 | "order": 6,
701 | "mode": 0,
702 | "outputs": [
703 | {
704 | "name": "STRING",
705 | "type": "STRING",
706 | "links": [
707 | 52
708 | ],
709 | "shape": 3,
710 | "slot_index": 0
711 | }
712 | ],
713 | "properties": {
714 | "Node name for S&R": "ProjectorzParameter"
715 | },
716 | "widgets_values": [
717 | "negative_prompt",
718 | "bad art"
719 | ]
720 | }
721 | ],
722 | "links": [
723 | [
724 | 32,
725 | 33,
726 | 0,
727 | 31,
728 | 2,
729 | "CONDITIONING"
730 | ],
731 | [
732 | 33,
733 | 37,
734 | 0,
735 | 34,
736 | 0,
737 | "INT"
738 | ],
739 | [
740 | 34,
741 | 38,
742 | 0,
743 | 34,
744 | 1,
745 | "INT"
746 | ],
747 | [
748 | 35,
749 | 35,
750 | 0,
751 | 37,
752 | 0,
753 | "STRING"
754 | ],
755 | [
756 | 36,
757 | 36,
758 | 0,
759 | 38,
760 | 0,
761 | "STRING"
762 | ],
763 | [
764 | 37,
765 | 34,
766 | 0,
767 | 31,
768 | 3,
769 | "LATENT"
770 | ],
771 | [
772 | 38,
773 | 39,
774 | 0,
775 | 31,
776 | 0,
777 | "MODEL"
778 | ],
779 | [
780 | 39,
781 | 39,
782 | 1,
783 | 32,
784 | 0,
785 | "CLIP"
786 | ],
787 | [
788 | 40,
789 | 39,
790 | 1,
791 | 33,
792 | 0,
793 | "CLIP"
794 | ],
795 | [
796 | 41,
797 | 31,
798 | 0,
799 | 40,
800 | 0,
801 | "LATENT"
802 | ],
803 | [
804 | 42,
805 | 39,
806 | 2,
807 | 40,
808 | 1,
809 | "VAE"
810 | ],
811 | [
812 | 43,
813 | 32,
814 | 0,
815 | 41,
816 | 0,
817 | "CONDITIONING"
818 | ],
819 | [
820 | 45,
821 | 42,
822 | 0,
823 | 41,
824 | 1,
825 | "CONTROL_NET"
826 | ],
827 | [
828 | 46,
829 | 40,
830 | 0,
831 | 43,
832 | 0,
833 | "IMAGE"
834 | ],
835 | [
836 | 47,
837 | 40,
838 | 0,
839 | 44,
840 | 0,
841 | "IMAGE"
842 | ],
843 | [
844 | 48,
845 | 45,
846 | 0,
847 | 28,
848 | 0,
849 | "IMAGE"
850 | ],
851 | [
852 | 49,
853 | 45,
854 | 0,
855 | 41,
856 | 2,
857 | "IMAGE"
858 | ],
859 | [
860 | 50,
861 | 41,
862 | 0,
863 | 31,
864 | 1,
865 | "CONDITIONING"
866 | ],
867 | [
868 | 51,
869 | 46,
870 | 0,
871 | 32,
872 | 1,
873 | "STRING"
874 | ],
875 | [
876 | 52,
877 | 47,
878 | 0,
879 | 33,
880 | 1,
881 | "STRING"
882 | ]
883 | ],
884 | "groups": [],
885 | "config": {},
886 | "extra": {
887 | "workspace_info": {
888 | "id": "2-ETy_XTyj5xfIrk71V1D"
889 | }
890 | },
891 | "version": 0.4
892 | }
--------------------------------------------------------------------------------
/sysinfo.json:
--------------------------------------------------------------------------------
1 | {
2 | "Platform": "Windows-10-10.0.22000-SP0",
3 | "Python": "3.10.5",
4 | "Version": "f0.0.17v1.8.0rc-latest-276-g29be1da7",
5 | "Commit": "29be1da7cf2b5dccfc70fbdd33eb35c56a31ffb7",
6 | "Script path": "D:\\stable-diffusion-webui-forge",
7 | "Data path": "D:\\stable-diffusion-webui-forge",
8 | "Extensions dir": "D:\\extensions",
9 | "Checksum": "6197c67c0d911565cf99656ae78a25541de17c2a8d5216f9bb72bbbfc575c6a8",
10 | "Commandline": [
11 | "launch.py",
12 | "--xformers",
13 | "--listen",
14 | "--autolaunch",
15 | "--enable-insecure-extension-access",
16 | "--pin-shared-memory",
17 | "--cuda-malloc",
18 | "--cuda-stream",
19 | "--api",
20 | "--api-log",
21 | "--loglevel",
22 | "DEBUG"
23 | ],
24 | "Torch env info": {
25 | "torch_version": "2.1.2+cu121",
26 | "is_debug_build": "False",
27 | "cuda_compiled_version": "12.1",
28 | "gcc_version": null,
29 | "clang_version": null,
30 | "cmake_version": "version 3.29.3",
31 | "os": "Microsoft Windows 11 ???",
32 | "libc_version": "N/A",
33 | "python_version": "3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] (64-bit runtime)",
34 | "python_platform": "Windows-10-10.0.22000-SP0",
35 | "is_cuda_available": "True",
36 | "cuda_runtime_version": "12.4.131\r",
37 | "cuda_module_loading": "LAZY",
38 | "nvidia_driver_version": "552.22",
39 | "nvidia_gpu_models": "GPU 0: NVIDIA GeForce RTX 2080 Ti",
40 | "cudnn_version": null,
41 | "pip_version": "pip3",
42 | "pip_packages": [
43 | "numpy==1.26.2",
44 | "open-clip-torch==2.20.0",
45 | "pytorch-lightning==1.9.4",
46 | "torch==2.1.2+cu121",
47 | "torchdiffeq==0.2.3",
48 | "torchmetrics==1.4.0",
49 | "torchsde==0.2.6",
50 | "torchvision==0.16.2+cu121"
51 | ],
52 | "conda_packages": "",
53 | "hip_compiled_version": "N/A",
54 | "hip_runtime_version": "N/A",
55 | "miopen_runtime_version": "N/A",
56 | "caching_allocator_config": "backend:cudaMallocAsync",
57 | "is_xnnpack_available": "True",
58 | "cpu_info": [
59 | "Architecture=9",
60 | "CurrentClockSpeed=3500",
61 | "DeviceID=CPU0",
62 | "Family=205",
63 | "L2CacheSize=16384",
64 | "L2CacheSpeed=",
65 | "Manufacturer=GenuineIntel",
66 | "MaxClockSpeed=3500",
67 | "Name=13th Gen Intel(R) Core(TM) i5-13600KF",
68 | "ProcessorType=3",
69 | "Revision="
70 | ]
71 | },
72 | "Exceptions": [],
73 | "CPU": {
74 | "model": "Intel64 Family 6 Model 183 Stepping 1, GenuineIntel",
75 | "count logical": 20,
76 | "count physical": 14
77 | },
78 | "RAM": {
79 | "total": "64GB",
80 | "used": "43GB",
81 | "free": "21GB"
82 | },
83 | "Extensions": [],
84 | "Inactive extensions": [],
85 | "Environment": {
86 | "GRADIO_ANALYTICS_ENABLED": "False"
87 | },
88 | "Config": {
89 | "ldsr_steps": 100,
90 | "ldsr_cached": false,
91 | "SCUNET_tile": 256,
92 | "SCUNET_tile_overlap": 8,
93 | "SWIN_tile": 192,
94 | "SWIN_tile_overlap": 8,
95 | "SWIN_torch_compile": false,
96 | "control_net_detectedmap_dir": "detected_maps",
97 | "control_net_models_path": "D:\\ControlNet",
98 | "control_net_modules_path": "",
99 | "control_net_unit_count": 3,
100 | "control_net_model_cache_size": 5,
101 | "control_net_no_detectmap": false,
102 | "control_net_detectmap_autosaving": false,
103 | "control_net_allow_script_control": false,
104 | "control_net_sync_field_args": true,
105 | "controlnet_show_batch_images_in_ui": false,
106 | "controlnet_increment_seed_during_batch": false,
107 | "controlnet_disable_openpose_edit": false,
108 | "controlnet_disable_photopea_edit": false,
109 | "controlnet_photopea_warning": true,
110 | "controlnet_input_thumbnail": true,
111 | "sd_model_checkpoint": "Configure In ComfyUI",
112 | "sd_vae": "None",
113 | "sd_checkpoint_hash": "eb4099ba9cd5e69ab526fca22a2e967f286f8512d9509b735c892fa6468767cf",
114 | "outdir_samples": "",
115 | "outdir_txt2img_samples": "output\\txt2img-images",
116 | "outdir_img2img_samples": "output\\img2img-images",
117 | "outdir_extras_samples": "output\\extras-images",
118 | "outdir_grids": "",
119 | "outdir_txt2img_grids": "output\\txt2img-grids",
120 | "outdir_img2img_grids": "output\\img2img-grids",
121 | "outdir_save": "log\\images",
122 | "outdir_init_images": "output\\init-images",
123 | "samples_save": true,
124 | "samples_format": "png",
125 | "samples_filename_pattern": "",
126 | "save_images_add_number": true,
127 | "save_images_replace_action": "Replace",
128 | "grid_save": true,
129 | "grid_format": "png",
130 | "grid_extended_filename": false,
131 | "grid_only_if_multiple": true,
132 | "grid_prevent_empty_spots": false,
133 | "grid_zip_filename_pattern": "",
134 | "n_rows": -1,
135 | "font": "",
136 | "grid_text_active_color": "#000000",
137 | "grid_text_inactive_color": "#999999",
138 | "grid_background_color": "#ffffff",
139 | "save_images_before_face_restoration": false,
140 | "save_images_before_highres_fix": false,
141 | "save_images_before_color_correction": false,
142 | "save_mask": false,
143 | "save_mask_composite": false,
144 | "jpeg_quality": 80,
145 | "webp_lossless": false,
146 | "export_for_4chan": true,
147 | "img_downscale_threshold": 4.0,
148 | "target_side_length": 4000.0,
149 | "img_max_size_mp": 200.0,
150 | "use_original_name_batch": true,
151 | "use_upscaler_name_as_suffix": false,
152 | "save_selected_only": true,
153 | "save_init_img": false,
154 | "temp_dir": "",
155 | "clean_temp_dir_at_start": false,
156 | "save_incomplete_images": false,
157 | "notification_audio": true,
158 | "notification_volume": 100,
159 | "save_to_dirs": true,
160 | "grid_save_to_dirs": true,
161 | "use_save_to_dirs_for_ui": false,
162 | "directories_filename_pattern": "[date]",
163 | "directories_max_prompt_words": 8,
164 | "auto_backcompat": true,
165 | "use_old_emphasis_implementation": false,
166 | "use_old_karras_scheduler_sigmas": false,
167 | "no_dpmpp_sde_batch_determinism": false,
168 | "use_old_hires_fix_width_height": false,
169 | "dont_fix_second_order_samplers_schedule": false,
170 | "hires_fix_use_firstpass_conds": false,
171 | "use_old_scheduling": false,
172 | "use_downcasted_alpha_bar": false,
173 | "lora_functional": false,
174 | "extra_networks_show_hidden_directories": true,
175 | "extra_networks_dir_button_function": false,
176 | "extra_networks_hidden_models": "When searched",
177 | "extra_networks_default_multiplier": 1,
178 | "extra_networks_card_width": 0.0,
179 | "extra_networks_card_height": 0.0,
180 | "extra_networks_card_text_scale": 1,
181 | "extra_networks_card_show_desc": true,
182 | "extra_networks_card_description_is_html": false,
183 | "extra_networks_card_order_field": "Path",
184 | "extra_networks_card_order": "Ascending",
185 | "extra_networks_tree_view_default_enabled": false,
186 | "extra_networks_add_text_separator": " ",
187 | "ui_extra_networks_tab_reorder": "",
188 | "textual_inversion_print_at_load": false,
189 | "textual_inversion_add_hashes_to_infotext": true,
190 | "sd_hypernetwork": "None",
191 | "sd_lora": "None",
192 | "lora_preferred_name": "Alias from file",
193 | "lora_add_hashes_to_infotext": true,
194 | "lora_show_all": false,
195 | "lora_hide_unknown_for_versions": [],
196 | "lora_in_memory_limit": 0,
197 | "lora_not_found_warning_console": false,
198 | "lora_not_found_gradio_warning": false,
199 | "cross_attention_optimization": "Automatic",
200 | "s_min_uncond": 0,
201 | "token_merging_ratio": 0,
202 | "token_merging_ratio_img2img": 0,
203 | "token_merging_ratio_hr": 0,
204 | "pad_cond_uncond": false,
205 | "pad_cond_uncond_v0": false,
206 | "persistent_cond_cache": true,
207 | "batch_cond_uncond": true,
208 | "fp8_storage": "Disable",
209 | "cache_fp16_weight": false,
210 | "hide_samplers": [],
211 | "eta_ddim": 0,
212 | "eta_ancestral": 1,
213 | "ddim_discretize": "uniform",
214 | "s_churn": 0,
215 | "s_tmin": 0,
216 | "s_tmax": 0,
217 | "s_noise": 1,
218 | "k_sched_type": "Automatic",
219 | "sigma_min": 0.0,
220 | "sigma_max": 0.0,
221 | "rho": 0.0,
222 | "eta_noise_seed_delta": 0,
223 | "always_discard_next_to_last_sigma": false,
224 | "sgm_noise_multiplier": false,
225 | "uni_pc_variant": "bh1",
226 | "uni_pc_skip_type": "time_uniform",
227 | "uni_pc_order": 3,
228 | "uni_pc_lower_order_final": true,
229 | "sd_noise_schedule": "Default",
230 | "sd_checkpoints_limit": 1,
231 | "sd_checkpoints_keep_in_cpu": true,
232 | "sd_checkpoint_cache": 0,
233 | "sd_unet": "Automatic",
234 | "enable_quantization": false,
235 | "emphasis": "Original",
236 | "enable_batch_seeds": true,
237 | "comma_padding_backtrack": 20,
238 | "upcast_attn": false,
239 | "randn_source": "GPU",
240 | "tiling": false,
241 | "hires_fix_refiner_pass": "first pass",
242 | "enable_prompt_comments": true,
243 | "sdxl_crop_top": 0.0,
244 | "sdxl_crop_left": 0.0,
245 | "sdxl_refiner_low_aesthetic_score": 2.5,
246 | "sdxl_refiner_high_aesthetic_score": 6.0,
247 | "sd_vae_checkpoint_cache": 0,
248 | "sd_vae_overrides_per_model_preferences": true,
249 | "auto_vae_precision_bfloat16": false,
250 | "auto_vae_precision": true,
251 | "sd_vae_encode_method": "Full",
252 | "sd_vae_decode_method": "Full",
253 | "inpainting_mask_weight": 1,
254 | "initial_noise_multiplier": 1,
255 | "img2img_extra_noise": 0,
256 | "img2img_color_correction": false,
257 | "img2img_fix_steps": false,
258 | "img2img_background_color": "#ffffff",
259 | "img2img_editor_height": 720,
260 | "img2img_sketch_default_brush_color": "#ffffff",
261 | "img2img_inpaint_mask_brush_color": "#ffffff",
262 | "img2img_inpaint_sketch_default_brush_color": "#ffffff",
263 | "return_mask": false,
264 | "return_mask_composite": false,
265 | "img2img_batch_show_results_limit": 32,
266 | "overlay_inpaint": true,
267 | "return_grid": true,
268 | "do_not_show_images": false,
269 | "js_modal_lightbox": true,
270 | "js_modal_lightbox_initially_zoomed": true,
271 | "js_modal_lightbox_gamepad": false,
272 | "js_modal_lightbox_gamepad_repeat": 250.0,
273 | "sd_webui_modal_lightbox_icon_opacity": 1,
274 | "sd_webui_modal_lightbox_toolbar_opacity": 0.9,
275 | "gallery_height": "",
276 | "open_dir_button_choice": "Subdirectory",
277 | "enable_pnginfo": true,
278 | "save_txt": false,
279 | "add_model_name_to_info": true,
280 | "add_model_hash_to_info": true,
281 | "add_vae_name_to_info": true,
282 | "add_vae_hash_to_info": true,
283 | "add_user_name_to_info": false,
284 | "add_version_to_infotext": true,
285 | "disable_weights_auto_swap": true,
286 | "infotext_skip_pasting": [],
287 | "infotext_styles": "Apply if any",
288 | "show_progressbar": true,
289 | "live_previews_enable": true,
290 | "live_previews_image_format": "png",
291 | "show_progress_grid": true,
292 | "show_progress_every_n_steps": 10,
293 | "show_progress_type": "Approx NN",
294 | "live_preview_allow_lowvram_full": false,
295 | "live_preview_content": "Prompt",
296 | "live_preview_refresh_period": 1000.0,
297 | "live_preview_fast_interrupt": false,
298 | "js_live_preview_in_modal_lightbox": false,
299 | "keyedit_precision_attention": 0.1,
300 | "keyedit_precision_extra": 0.05,
301 | "keyedit_delimiters": ".,\\/!?%^*;:{}=`~() ",
302 | "keyedit_delimiters_whitespace": [
303 | "Tab",
304 | "Carriage Return",
305 | "Line Feed"
306 | ],
307 | "keyedit_move": true,
308 | "disable_token_counters": false,
309 | "include_styles_into_token_counters": true,
310 | "extra_options_txt2img": [],
311 | "extra_options_img2img": [],
312 | "extra_options_cols": 1,
313 | "extra_options_accordion": false,
314 | "compact_prompt_box": false,
315 | "samplers_in_dropdown": true,
316 | "dimensions_and_batch_together": true,
317 | "sd_checkpoint_dropdown_use_short": false,
318 | "hires_fix_show_sampler": false,
319 | "hires_fix_show_prompts": false,
320 | "txt2img_settings_accordion": false,
321 | "img2img_settings_accordion": false,
322 | "interrupt_after_current": true,
323 | "localization": "None",
324 | "quicksettings_list": [
325 | "sd_model_checkpoint",
326 | "sd_vae",
327 | "CLIP_stop_at_last_layers"
328 | ],
329 | "ui_tab_order": [],
330 | "hidden_tabs": [],
331 | "ui_reorder_list": [],
332 | "gradio_theme": "Default",
333 | "gradio_themes_cache": true,
334 | "show_progress_in_title": true,
335 | "send_seed": true,
336 | "send_size": true,
337 | "api_enable_requests": true,
338 | "api_forbid_local_requests": true,
339 | "api_useragent": "",
340 | "auto_launch_browser": "Local",
341 | "enable_console_prompts": false,
342 | "show_warnings": false,
343 | "show_gradio_deprecation_warnings": true,
344 | "memmon_poll_rate": 8,
345 | "samples_log_stdout": false,
346 | "multiple_tqdm": true,
347 | "enable_upscale_progressbar": true,
348 | "print_hypernet_extra": false,
349 | "list_hidden_files": true,
350 | "disable_mmap_load_safetensors": false,
351 | "hide_ldm_prints": true,
352 | "dump_stacks_on_signal": false,
353 | "face_restoration": false,
354 | "face_restoration_model": "CodeFormer",
355 | "code_former_weight": 0.5,
356 | "face_restoration_unload": false,
357 | "postprocessing_enable_in_main_ui": [],
358 | "postprocessing_operation_order": [],
359 | "upscaling_max_images_in_cache": 5,
360 | "postprocessing_existing_caption_action": "Ignore",
361 | "ESRGAN_tile": 192,
362 | "ESRGAN_tile_overlap": 8,
363 | "realesrgan_enabled_models": [
364 | "R-ESRGAN 4x+",
365 | "R-ESRGAN 4x+ Anime6B"
366 | ],
367 | "dat_enabled_models": [
368 | "DAT x2",
369 | "DAT x3",
370 | "DAT x4"
371 | ],
372 | "DAT_tile": 192,
373 | "DAT_tile_overlap": 8,
374 | "unload_models_when_training": false,
375 | "pin_memory": false,
376 | "save_optimizer_state": false,
377 | "save_training_settings_to_txt": true,
378 | "dataset_filename_word_regex": "",
379 | "dataset_filename_join_string": " ",
380 | "training_image_repeats_per_epoch": 1,
381 | "training_write_csv_every": 500.0,
382 | "training_xattention_optimizations": false,
383 | "training_enable_tensorboard": false,
384 | "training_tensorboard_save_images": false,
385 | "training_tensorboard_flush_every": 120.0,
386 | "canvas_hotkey_zoom": "Alt",
387 | "canvas_hotkey_adjust": "Ctrl",
388 | "canvas_hotkey_shrink_brush": "Q",
389 | "canvas_hotkey_grow_brush": "W",
390 | "canvas_hotkey_move": "F",
391 | "canvas_hotkey_fullscreen": "S",
392 | "canvas_hotkey_reset": "R",
393 | "canvas_hotkey_overlap": "O",
394 | "canvas_show_tooltip": true,
395 | "canvas_auto_expand": true,
396 | "canvas_blur_prompt": false,
397 | "canvas_disabled_functions": [
398 | "Overlap"
399 | ],
400 | "interrogate_keep_models_in_memory": false,
401 | "interrogate_return_ranks": false,
402 | "interrogate_clip_num_beams": 1,
403 | "interrogate_clip_min_length": 24,
404 | "interrogate_clip_max_length": 48,
405 | "interrogate_clip_dict_limit": 1500.0,
406 | "interrogate_clip_skip_categories": [],
407 | "interrogate_deepbooru_score_threshold": 0.5,
408 | "deepbooru_sort_alpha": true,
409 | "deepbooru_use_spaces": true,
410 | "deepbooru_escape": true,
411 | "deepbooru_filter_tags": "",
412 | "CLIP_stop_at_last_layers": 1,
413 | "upscaler_for_img2img": "R-ESRGAN 4x+"
414 | },
415 | "Startup": {
416 | "total": 35.82890605926514,
417 | "records": {
418 | "initial startup": 0.02299785614013672,
419 | "prepare environment/checks": 0.0010006427764892578,
420 | "prepare environment/git version info": 0.11066532135009766,
421 | "prepare environment/torch GPU test": 3.5702154636383057,
422 | "prepare environment/clone repositores": 0.2807614803314209,
423 | "prepare environment/run extensions installers": 0.00201416015625,
424 | "prepare environment/run extensions_builtin installers/canvas-zoom-and-pan": 0.001005411148071289,
425 | "prepare environment/run extensions_builtin installers/extra-options-section": 0.0,
426 | "prepare environment/run extensions_builtin installers/forge_legacy_preprocessors": 0.29414939880371094,
427 | "prepare environment/run extensions_builtin installers/forge_preprocessor_inpaint": 0.0005478858947753906,
428 | "prepare environment/run extensions_builtin installers/forge_preprocessor_marigold": 0.0,
429 | "prepare environment/run extensions_builtin installers/forge_preprocessor_normalbae": 0.0005502700805664062,
430 | "prepare environment/run extensions_builtin installers/forge_preprocessor_recolor": 0.0,
431 | "prepare environment/run extensions_builtin installers/forge_preprocessor_reference": 0.0005352497100830078,
432 | "prepare environment/run extensions_builtin installers/forge_preprocessor_revision": 0.0,
433 | "prepare environment/run extensions_builtin installers/forge_preprocessor_tile": 0.0005211830139160156,
434 | "prepare environment/run extensions_builtin installers/LDSR": 0.0,
435 | "prepare environment/run extensions_builtin installers/Lora": 0.0005223751068115234,
436 | "prepare environment/run extensions_builtin installers/mobile": 0.0,
437 | "prepare environment/run extensions_builtin installers/prompt-bracket-checker": 0.0005383491516113281,
438 | "prepare environment/run extensions_builtin installers/ScuNET": 0.0,
439 | "prepare environment/run extensions_builtin installers/sd_forge_controlllite": 0.0005309581756591797,
440 | "prepare environment/run extensions_builtin installers/sd_forge_controlnet": 0.2839622497558594,
441 | "prepare environment/run extensions_builtin installers/sd_forge_controlnet_example": 0.0010018348693847656,
442 | "prepare environment/run extensions_builtin installers/sd_forge_dynamic_thresholding": 0.0,
443 | "prepare environment/run extensions_builtin installers/sd_forge_fooocus_inpaint": 0.0,
444 | "prepare environment/run extensions_builtin installers/sd_forge_freeu": 0.0,
445 | "prepare environment/run extensions_builtin installers/sd_forge_hypertile": 0.0009992122650146484,
446 | "prepare environment/run extensions_builtin installers/sd_forge_ipadapter": 0.0,
447 | "prepare environment/run extensions_builtin installers/sd_forge_kohya_hrfix": 0.0,
448 | "prepare environment/run extensions_builtin installers/sd_forge_latent_modifier": 0.0,
449 | "prepare environment/run extensions_builtin installers/sd_forge_multidiffusion": 0.0,
450 | "prepare environment/run extensions_builtin installers/sd_forge_neveroom": 0.0009984970092773438,
451 | "prepare environment/run extensions_builtin installers/sd_forge_photomaker": 0.0,
452 | "prepare environment/run extensions_builtin installers/sd_forge_sag": 0.0,
453 | "prepare environment/run extensions_builtin installers/sd_forge_stylealign": 0.0,
454 | "prepare environment/run extensions_builtin installers/sd_forge_svd": 0.0,
455 | "prepare environment/run extensions_builtin installers/sd_forge_z123": 0.0009999275207519531,
456 | "prepare environment/run extensions_builtin installers/soft-inpainting": 0.0,
457 | "prepare environment/run extensions_builtin installers/SwinIR": 0.0,
458 | "prepare environment/run extensions_builtin installers": 0.5868628025054932,
459 | "prepare environment": 4.59986424446106,
460 | "launcher": 0.0018799304962158203,
461 | "import torch": 10.41801142692566,
462 | "import gradio": 1.6211001873016357,
463 | "setup paths": 1.3021881580352783,
464 | "import ldm": 0.008752822875976562,
465 | "import sgm": 0.0,
466 | "initialize shared": 0.1870555877685547,
467 | "other imports": 0.9376115798950195,
468 | "opts onchange": 0.0010030269622802734,
469 | "setup SD model": 0.0010073184967041016,
470 | "setup codeformer": 0.0019979476928710938,
471 | "setup gfpgan": 0.01517629623413086,
472 | "set samplers": 0.0010097026824951172,
473 | "list extensions": 0.0050165653228759766,
474 | "restore config state file": 0.0,
475 | "list SD models": 0.08486628532409668,
476 | "list localizations": 0.0,
477 | "load scripts/custom_code.py": 0.011597394943237305,
478 | "load scripts/img2imgalt.py": 0.0009996891021728516,
479 | "load scripts/loopback.py": 0.0010037422180175781,
480 | "load scripts/outpainting_mk_2.py": 0.0,
481 | "load scripts/poor_mans_outpainting.py": 0.0007176399230957031,
482 | "load scripts/postprocessing_caption.py": 0.0,
483 | "load scripts/postprocessing_codeformer.py": 0.0010783672332763672,
484 | "load scripts/postprocessing_create_flipped_copies.py": 0.0010144710540771484,
485 | "load scripts/postprocessing_focal_crop.py": 0.020041704177856445,
486 | "load scripts/postprocessing_gfpgan.py": 0.0010006427764892578,
487 | "load scripts/postprocessing_split_oversized.py": 0.0010001659393310547,
488 | "load scripts/postprocessing_upscale.py": 0.0020003318786621094,
489 | "load scripts/processing_autosized_crop.py": 0.0009996891021728516,
490 | "load scripts/prompt_matrix.py": 0.001001596450805664,
491 | "load scripts/prompts_from_file.py": 0.0020494461059570312,
492 | "load scripts/sd_upscale.py": 0.0,
493 | "load scripts/xyz_grid.py": 0.011040210723876953,
494 | "load scripts/ldsr_model.py": 0.894047737121582,
495 | "load scripts/lora_script.py": 1.4116573333740234,
496 | "load scripts/scunet_model.py": 0.2327895164489746,
497 | "load scripts/swinir_model.py": 0.266101598739624,
498 | "load scripts/hotkey_config.py": 0.0,
499 | "load scripts/extra_options_section.py": 0.0010042190551757812,
500 | "load scripts/legacy_preprocessors.py": 0.01180577278137207,
501 | "load scripts/preprocessor_inpaint.py": 0.0205838680267334,
502 | "load scripts/preprocessor_marigold.py": 0.18079137802124023,
503 | "load scripts/preprocessor_normalbae.py": 0.005088090896606445,
504 | "load scripts/preprocessor_recolor.py": 0.0,
505 | "load scripts/forge_reference.py": 0.0,
506 | "load scripts/preprocessor_revision.py": 0.0009686946868896484,
507 | "load scripts/preprocessor_tile.py": 0.0,
508 | "load scripts/forge_controllllite.py": 0.00885462760925293,
509 | "load scripts/controlnet.py": 1.9831736087799072,
510 | "load scripts/xyz_grid_support.py": 0.0010135173797607422,
511 | "load scripts/sd_forge_controlnet_example.py": 0.0,
512 | "load scripts/forge_dynamic_thresholding.py": 0.005999565124511719,
513 | "load scripts/forge_fooocus_inpaint.py": 0.0,
514 | "load scripts/forge_freeu.py": 0.004259824752807617,
515 | "load scripts/forge_hypertile.py": 0.002860546112060547,
516 | "load scripts/forge_ipadapter.py": 0.006012439727783203,
517 | "load scripts/kohya_hrfix.py": 0.0028705596923828125,
518 | "load scripts/forge_latent_modifier.py": 0.004008054733276367,
519 | "load scripts/forge_multidiffusion.py": 0.007009744644165039,
520 | "load scripts/forge_never_oom.py": 0.0015723705291748047,
521 | "load scripts/forge_photomaker.py": 0.0030133724212646484,
522 | "load scripts/forge_sag.py": 0.004004716873168945,
523 | "load scripts/forge_stylealign.py": 0.0,
524 | "load scripts/forge_svd.py": 0.24135804176330566,
525 | "load scripts/forge_z123.py": 0.24125385284423828,
526 | "load scripts/soft_inpainting.py": 0.0010006427764892578,
527 | "load scripts/comments.py": 0.2156963348388672,
528 | "load scripts/refiner.py": 0.0,
529 | "load scripts/seed.py": 0.0010056495666503906,
530 | "load scripts": 5.815350770950317,
531 | "load upscalers": 0.006025552749633789,
532 | "refresh VAE": 0.04941391944885254,
533 | "refresh textual inversion templates": 0.0,
534 | "scripts list_optimizers": 0.15437746047973633,
535 | "scripts list_unets": 0.0,
536 | "reload hypernetworks": 0.0,
537 | "initialize extra networks": 0.003013134002685547,
538 | "scripts before_ui_callback": 0.0029997825622558594,
539 | "create ui": 2.5327906608581543,
540 | "gradio launch": 5.397334337234497,
541 | "add APIs": 2.704474925994873,
542 | "app_started_callback/lora_script.py": 0.0009434223175048828,
543 | "app_started_callback/controlnet.py": 0.001994609832763672,
544 | "app_started_callback": 0.0029380321502685547
545 | }
546 | },
547 | "Packages": [
548 | "absl-py==2.1.0",
549 | "accelerate==0.21.0",
550 | "addict==2.4.0",
551 | "aenum==3.1.15",
552 | "aiofiles==23.2.1",
553 | "aiohttp==3.9.5",
554 | "aiosignal==1.3.1",
555 | "albumentations==1.4.6",
556 | "altair==5.3.0",
557 | "annotated-types==0.6.0",
558 | "antlr4-python3-runtime==4.9.3",
559 | "anyio==3.7.1",
560 | "async-timeout==4.0.3",
561 | "attrs==23.2.0",
562 | "basicsr==1.4.2",
563 | "blendmodes==2022",
564 | "certifi==2024.2.2",
565 | "cffi==1.16.0",
566 | "chardet==5.2.0",
567 | "charset-normalizer==3.3.2",
568 | "clean-fid==0.1.35",
569 | "click==8.1.7",
570 | "clip==1.0",
571 | "colorama==0.4.6",
572 | "coloredlogs==15.0.1",
573 | "colorlog==6.8.2",
574 | "contourpy==1.2.1",
575 | "cssselect2==0.7.0",
576 | "cycler==0.12.1",
577 | "cython==3.0.10",
578 | "deprecation==2.1.0",
579 | "depth-anything==2024.1.22.0",
580 | "diffusers==0.25.0",
581 | "dnspython==2.6.1",
582 | "easydict==1.13",
583 | "einops==0.4.1",
584 | "email-validator==2.1.1",
585 | "embreex==2.17.7.post4",
586 | "exceptiongroup==1.2.1",
587 | "facexlib==0.3.0",
588 | "fastapi-cli==0.0.3",
589 | "fastapi==0.94.0",
590 | "ffmpy==0.3.2",
591 | "filelock==3.14.0",
592 | "filterpy==1.4.5",
593 | "flatbuffers==24.3.25",
594 | "fonttools==4.51.0",
595 | "frozenlist==1.4.1",
596 | "fsspec==2024.3.1",
597 | "ftfy==6.2.0",
598 | "future==1.0.0",
599 | "fvcore==0.1.5.post20221221",
600 | "gitdb==4.0.11",
601 | "gitpython==3.1.32",
602 | "gradio-client==0.5.0",
603 | "gradio==3.41.2",
604 | "grpcio==1.63.0",
605 | "h11==0.12.0",
606 | "handrefinerportable==2024.2.12.0",
607 | "httpcore==0.15.0",
608 | "httptools==0.6.1",
609 | "httpx==0.24.1",
610 | "huggingface-hub==0.23.0",
611 | "humanfriendly==10.0",
612 | "idna==3.7",
613 | "imageio==2.34.1",
614 | "importlib-metadata==7.1.0",
615 | "importlib-resources==6.4.0",
616 | "inflection==0.5.1",
617 | "insightface==0.7.3",
618 | "iopath==0.1.9",
619 | "jax==0.4.28",
620 | "jaxlib==0.4.28",
621 | "jinja2==3.1.4",
622 | "joblib==1.4.2",
623 | "jsonmerge==1.8.0",
624 | "jsonschema-specifications==2023.12.1",
625 | "jsonschema==4.22.0",
626 | "kiwisolver==1.4.5",
627 | "kornia==0.6.7",
628 | "lark==1.1.2",
629 | "lazy-loader==0.4",
630 | "lightning-utilities==0.11.2",
631 | "llvmlite==0.42.0",
632 | "lmdb==1.4.1",
633 | "lxml==5.2.1",
634 | "mapbox-earcut==1.0.1",
635 | "markdown-it-py==3.0.0",
636 | "markdown==3.6",
637 | "markupsafe==2.1.5",
638 | "matplotlib==3.8.4",
639 | "mdurl==0.1.2",
640 | "mediapipe==0.10.14",
641 | "ml-dtypes==0.4.0",
642 | "mpmath==1.3.0",
643 | "multidict==6.0.5",
644 | "networkx==3.3",
645 | "numba==0.59.1",
646 | "numpy==1.26.2",
647 | "omegaconf==2.2.3",
648 | "onnx==1.16.0",
649 | "onnxruntime==1.17.3",
650 | "open-clip-torch==2.20.0",
651 | "opencv-contrib-python==4.9.0.80",
652 | "opencv-python-headless==4.9.0.80",
653 | "opencv-python==4.9.0.80",
654 | "opt-einsum==3.3.0",
655 | "orjson==3.10.3",
656 | "packaging==24.0",
657 | "pandas==2.2.2",
658 | "piexif==1.1.3",
659 | "pillow==9.5.0",
660 | "pip==22.0.4",
661 | "platformdirs==4.2.1",
662 | "portalocker==2.8.2",
663 | "pretty-errors==1.2.25",
664 | "prettytable==3.10.0",
665 | "protobuf==3.20.3",
666 | "psutil==5.9.5",
667 | "pycollada==0.8",
668 | "pycparser==2.22",
669 | "pydantic-core==2.18.2",
670 | "pydantic==1.10.15",
671 | "pydub==0.25.1",
672 | "pygments==2.18.0",
673 | "pyparsing==3.1.2",
674 | "pyreadline3==3.4.1",
675 | "python-dateutil==2.9.0.post0",
676 | "python-dotenv==1.0.1",
677 | "python-multipart==0.0.9",
678 | "pytorch-lightning==1.9.4",
679 | "pytz==2024.1",
680 | "pywavelets==1.6.0",
681 | "pywin32==306",
682 | "pyyaml==6.0.1",
683 | "referencing==0.35.1",
684 | "regex==2024.5.10",
685 | "reportlab==4.2.0",
686 | "requests==2.31.0",
687 | "resize-right==0.0.2",
688 | "rich==13.7.1",
689 | "rpds-py==0.18.1",
690 | "rtree==1.2.0",
691 | "safetensors==0.4.2",
692 | "scikit-image==0.21.0",
693 | "scikit-learn==1.4.2",
694 | "scipy==1.13.0",
695 | "semantic-version==2.10.0",
696 | "sentencepiece==0.2.0",
697 | "setuptools==58.1.0",
698 | "shapely==2.0.4",
699 | "shellingham==1.5.4",
700 | "six==1.16.0",
701 | "smmap==5.0.1",
702 | "sniffio==1.3.1",
703 | "sounddevice==0.4.6",
704 | "spandrel==0.1.6",
705 | "starlette==0.26.1",
706 | "svg.path==6.3",
707 | "svglib==1.5.1",
708 | "sympy==1.12",
709 | "tabulate==0.9.0",
710 | "tb-nightly==2.17.0a20240512",
711 | "tensorboard-data-server==0.7.2",
712 | "termcolor==2.4.0",
713 | "threadpoolctl==3.5.0",
714 | "tifffile==2024.5.10",
715 | "timm==0.9.16",
716 | "tinycss2==1.3.0",
717 | "tokenizers==0.13.3",
718 | "tomesd==0.1.3",
719 | "tomli==2.0.1",
720 | "toolz==0.12.1",
721 | "torch==2.1.2+cu121",
722 | "torchdiffeq==0.2.3",
723 | "torchmetrics==1.4.0",
724 | "torchsde==0.2.6",
725 | "torchvision==0.16.2+cu121",
726 | "tqdm==4.66.4",
727 | "trampoline==0.1.2",
728 | "transformers==4.30.2",
729 | "trimesh==4.3.2",
730 | "typer==0.12.3",
731 | "typing-extensions==4.11.0",
732 | "tzdata==2024.1",
733 | "ujson==5.9.0",
734 | "urllib3==2.2.1",
735 | "uvicorn==0.29.0",
736 | "vhacdx==0.0.6",
737 | "watchfiles==0.21.0",
738 | "wcwidth==0.2.13",
739 | "webencodings==0.5.1",
740 | "websockets==11.0.3",
741 | "werkzeug==3.0.3",
742 | "xatlas==0.0.9",
743 | "xformers==0.0.23.post1",
744 | "xxhash==3.4.1",
745 | "yacs==0.1.8",
746 | "yapf==0.40.2",
747 | "yarl==1.9.4",
748 | "zipp==3.18.1"
749 | ]
750 | }
--------------------------------------------------------------------------------
/sd-models_sample.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title": ".cache\\invoke\\ldm\\stable-diffusion-v1\\vae-ft-mse-840000-ema-pruned.ckpt [c6a580b13a]",
4 | "model_name": ".cache_invoke_ldm_stable-diffusion-v1_vae-ft-mse-840000-ema-pruned",
5 | "hash": "c6a580b13a",
6 | "sha256": "c6a580b13a5bc05a5e16e4dbb80608ff2ec251a162311590c1f34c013d7f3dab",
7 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\.cache\\invoke\\ldm\\stable-diffusion-v1\\vae-ft-mse-840000-ema-pruned.ckpt",
8 | "config": null
9 | },
10 | {
11 | "title": "ControlNet\\control_canny-fp16.safetensors",
12 | "model_name": "ControlNet_control_canny-fp16",
13 | "hash": null,
14 | "sha256": null,
15 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_canny-fp16.safetensors",
16 | "config": null
17 | },
18 | {
19 | "title": "ControlNet\\control_depth-fp16.safetensors",
20 | "model_name": "ControlNet_control_depth-fp16",
21 | "hash": "400750F6",
22 | "sha256": "400750F6",
23 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_depth-fp16.safetensors",
24 | "config": null
25 | },
26 | {
27 | "title": "ControlNet\\control_hed-fp16.safetensors",
28 | "model_name": "ControlNet_control_hed-fp16",
29 | "hash": null,
30 | "sha256": null,
31 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_hed-fp16.safetensors",
32 | "config": null
33 | },
34 | {
35 | "title": "ControlNet\\control_lora_rank128_v11f1e_sd15_tile_fp16.safetensors",
36 | "model_name": "ControlNet_control_lora_rank128_v11f1e_sd15_tile_fp16",
37 | "hash": null,
38 | "sha256": null,
39 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_lora_rank128_v11f1e_sd15_tile_fp16.safetensors",
40 | "config": null
41 | },
42 | {
43 | "title": "ControlNet\\control_mediapipe_face_sd15_v2.safetensors",
44 | "model_name": "ControlNet_control_mediapipe_face_sd15_v2",
45 | "hash": null,
46 | "sha256": null,
47 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_mediapipe_face_sd15_v2.safetensors",
48 | "config": null
49 | },
50 | {
51 | "title": "ControlNet\\control_mlsd-fp16.safetensors",
52 | "model_name": "ControlNet_control_mlsd-fp16",
53 | "hash": null,
54 | "sha256": null,
55 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_mlsd-fp16.safetensors",
56 | "config": null
57 | },
58 | {
59 | "title": "ControlNet\\control_normal-fp16.safetensors",
60 | "model_name": "ControlNet_control_normal-fp16",
61 | "hash": null,
62 | "sha256": null,
63 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_normal-fp16.safetensors",
64 | "config": null
65 | },
66 | {
67 | "title": "ControlNet\\control_openpose-fp16.safetensors",
68 | "model_name": "ControlNet_control_openpose-fp16",
69 | "hash": null,
70 | "sha256": null,
71 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_openpose-fp16.safetensors",
72 | "config": null
73 | },
74 | {
75 | "title": "ControlNet\\control_scribble-fp16.safetensors",
76 | "model_name": "ControlNet_control_scribble-fp16",
77 | "hash": null,
78 | "sha256": null,
79 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_scribble-fp16.safetensors",
80 | "config": null
81 | },
82 | {
83 | "title": "ControlNet\\control_seg-fp16.safetensors",
84 | "model_name": "ControlNet_control_seg-fp16",
85 | "hash": null,
86 | "sha256": null,
87 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_seg-fp16.safetensors",
88 | "config": null
89 | },
90 | {
91 | "title": "ControlNet\\control_v2p_sd15_mediapipe_face.safetensors",
92 | "model_name": "ControlNet_control_v2p_sd15_mediapipe_face",
93 | "hash": null,
94 | "sha256": null,
95 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_v2p_sd15_mediapipe_face.safetensors",
96 | "config": null
97 | },
98 | {
99 | "title": "ControlNet\\control_v11p_sd15_inpaint_fp16.safetensors",
100 | "model_name": "ControlNet_control_v11p_sd15_inpaint_fp16",
101 | "hash": null,
102 | "sha256": null,
103 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\control_v11p_sd15_inpaint_fp16.safetensors",
104 | "config": null
105 | },
106 | {
107 | "title": "ControlNet\\controlnet11Models_animeline.safetensors",
108 | "model_name": "ControlNet_controlnet11Models_animeline",
109 | "hash": null,
110 | "sha256": null,
111 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_animeline.safetensors",
112 | "config": null
113 | },
114 | {
115 | "title": "ControlNet\\controlnet11Models_canny.safetensors",
116 | "model_name": "ControlNet_controlnet11Models_canny",
117 | "hash": null,
118 | "sha256": null,
119 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_canny.safetensors",
120 | "config": null
121 | },
122 | {
123 | "title": "ControlNet\\controlnet11Models_depth.safetensors",
124 | "model_name": "ControlNet_controlnet11Models_depth",
125 | "hash": null,
126 | "sha256": null,
127 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_depth.safetensors",
128 | "config": null
129 | },
130 | {
131 | "title": "ControlNet\\controlnet11Models_inpaint.safetensors",
132 | "model_name": "ControlNet_controlnet11Models_inpaint",
133 | "hash": null,
134 | "sha256": null,
135 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_inpaint.safetensors",
136 | "config": null
137 | },
138 | {
139 | "title": "ControlNet\\controlnet11Models_lineart.safetensors",
140 | "model_name": "ControlNet_controlnet11Models_lineart",
141 | "hash": null,
142 | "sha256": null,
143 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_lineart.safetensors",
144 | "config": null
145 | },
146 | {
147 | "title": "ControlNet\\controlnet11Models_mlsd.safetensors",
148 | "model_name": "ControlNet_controlnet11Models_mlsd",
149 | "hash": null,
150 | "sha256": null,
151 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_mlsd.safetensors",
152 | "config": null
153 | },
154 | {
155 | "title": "ControlNet\\controlnet11Models_normal.safetensors",
156 | "model_name": "ControlNet_controlnet11Models_normal",
157 | "hash": null,
158 | "sha256": null,
159 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_normal.safetensors",
160 | "config": null
161 | },
162 | {
163 | "title": "ControlNet\\controlnet11Models_openpose.safetensors",
164 | "model_name": "ControlNet_controlnet11Models_openpose",
165 | "hash": null,
166 | "sha256": null,
167 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_openpose.safetensors",
168 | "config": null
169 | },
170 | {
171 | "title": "ControlNet\\controlnet11Models_pix2pix.safetensors",
172 | "model_name": "ControlNet_controlnet11Models_pix2pix",
173 | "hash": null,
174 | "sha256": null,
175 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_pix2pix.safetensors",
176 | "config": null
177 | },
178 | {
179 | "title": "ControlNet\\controlnet11Models_scribble.safetensors",
180 | "model_name": "ControlNet_controlnet11Models_scribble",
181 | "hash": null,
182 | "sha256": null,
183 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_scribble.safetensors",
184 | "config": null
185 | },
186 | {
187 | "title": "ControlNet\\controlnet11Models_seg.safetensors",
188 | "model_name": "ControlNet_controlnet11Models_seg",
189 | "hash": null,
190 | "sha256": null,
191 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_seg.safetensors",
192 | "config": null
193 | },
194 | {
195 | "title": "ControlNet\\controlnet11Models_shuffle.safetensors",
196 | "model_name": "ControlNet_controlnet11Models_shuffle",
197 | "hash": null,
198 | "sha256": null,
199 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_shuffle.safetensors",
200 | "config": null
201 | },
202 | {
203 | "title": "ControlNet\\controlnet11Models_softedge.safetensors",
204 | "model_name": "ControlNet_controlnet11Models_softedge",
205 | "hash": null,
206 | "sha256": null,
207 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_softedge.safetensors",
208 | "config": null
209 | },
210 | {
211 | "title": "ControlNet\\controlnet11Models_tile.safetensors",
212 | "model_name": "ControlNet_controlnet11Models_tile",
213 | "hash": null,
214 | "sha256": null,
215 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\controlnet11Models_tile.safetensors",
216 | "config": null
217 | },
218 | {
219 | "title": "ControlNet\\diffusers_xl_depth_full.safetensors",
220 | "model_name": "ControlNet_diffusers_xl_depth_full",
221 | "hash": null,
222 | "sha256": null,
223 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\diffusers_xl_depth_full.safetensors",
224 | "config": null
225 | },
226 | {
227 | "title": "ControlNet\\t2iadapter_color-fp16.safetensors",
228 | "model_name": "ControlNet_t2iadapter_color-fp16",
229 | "hash": null,
230 | "sha256": null,
231 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\ControlNet\\t2iadapter_color-fp16.safetensors",
232 | "config": null
233 | },
234 | {
235 | "title": "embeddings\\EasyNegative.safetensors",
236 | "model_name": "embeddings_EasyNegative",
237 | "hash": null,
238 | "sha256": null,
239 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\embeddings\\EasyNegative.safetensors",
240 | "config": null
241 | },
242 | {
243 | "title": "LDSR\\model.ckpt",
244 | "model_name": "LDSR_model",
245 | "hash": null,
246 | "sha256": null,
247 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\LDSR\\model.ckpt",
248 | "config": null
249 | },
250 | {
251 | "title": "Lora\\64x3-05.safetensors",
252 | "model_name": "Lora_64x3-05",
253 | "hash": null,
254 | "sha256": null,
255 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\64x3-05.safetensors",
256 | "config": null
257 | },
258 | {
259 | "title": "Lora\\0220 nude tattoo_v2.safetensors",
260 | "model_name": "Lora_0220 nude tattoo_v2",
261 | "hash": null,
262 | "sha256": null,
263 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\0220 nude tattoo_v2.safetensors",
264 | "config": null
265 | },
266 | {
267 | "title": "Lora\\add_detail.safetensors",
268 | "model_name": "Lora_add_detail",
269 | "hash": null,
270 | "sha256": null,
271 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\add_detail.safetensors",
272 | "config": null
273 | },
274 | {
275 | "title": "Lora\\demoTaeyeon_teayeonsnsdV1.safetensors",
276 | "model_name": "Lora_demoTaeyeon_teayeonsnsdV1",
277 | "hash": null,
278 | "sha256": null,
279 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\demoTaeyeon_teayeonsnsdV1.safetensors",
280 | "config": null
281 | },
282 | {
283 | "title": "Lora\\ExperimentalMakeup_v10.safetensors",
284 | "model_name": "Lora_ExperimentalMakeup_v10",
285 | "hash": null,
286 | "sha256": null,
287 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\ExperimentalMakeup_v10.safetensors",
288 | "config": null
289 | },
290 | {
291 | "title": "Lora\\fashionGirl_v53.safetensors",
292 | "model_name": "Lora_fashionGirl_v53",
293 | "hash": null,
294 | "sha256": null,
295 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\fashionGirl_v53.safetensors",
296 | "config": null
297 | },
298 | {
299 | "title": "Lora\\gachaSplashLORA_v40.safetensors",
300 | "model_name": "Lora_gachaSplashLORA_v40",
301 | "hash": null,
302 | "sha256": null,
303 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\gachaSplashLORA_v40.safetensors",
304 | "config": null
305 | },
306 | {
307 | "title": "Lora\\GJY_LoCon.safetensors",
308 | "model_name": "Lora_GJY_LoCon",
309 | "hash": null,
310 | "sha256": null,
311 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\GJY_LoCon.safetensors",
312 | "config": null
313 | },
314 | {
315 | "title": "Lora\\GJY_LoHA.safetensors",
316 | "model_name": "Lora_GJY_LoHA",
317 | "hash": null,
318 | "sha256": null,
319 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\GJY_LoHA.safetensors",
320 | "config": null
321 | },
322 | {
323 | "title": "Lora\\GJY_LoRA.safetensors",
324 | "model_name": "Lora_GJY_LoRA",
325 | "hash": null,
326 | "sha256": null,
327 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\GJY_LoRA.safetensors",
328 | "config": null
329 | },
330 | {
331 | "title": "Lora\\Goth_girl-v2.safetensors",
332 | "model_name": "Lora_Goth_girl-v2",
333 | "hash": null,
334 | "sha256": null,
335 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\Goth_girl-v2.safetensors",
336 | "config": null
337 | },
338 | {
339 | "title": "Lora\\hyperrefiner_v090.safetensors",
340 | "model_name": "Lora_hyperrefiner_v090",
341 | "hash": null,
342 | "sha256": null,
343 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\hyperrefiner_v090.safetensors",
344 | "config": null
345 | },
346 | {
347 | "title": "Lora\\japaneseDollLikeness_v10.safetensors",
348 | "model_name": "Lora_japaneseDollLikeness_v10",
349 | "hash": null,
350 | "sha256": null,
351 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\japaneseDollLikeness_v10.safetensors",
352 | "config": null
353 | },
354 | {
355 | "title": "Lora\\koreanDollLikeness_v15.safetensors",
356 | "model_name": "Lora_koreanDollLikeness_v15",
357 | "hash": null,
358 | "sha256": null,
359 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\koreanDollLikeness_v15.safetensors",
360 | "config": null
361 | },
362 | {
363 | "title": "Lora\\lcm-lora-sdv1-5.safetensors.safetensors",
364 | "model_name": "Lora_lcm-lora-sdv1-5.safetensors",
365 | "hash": null,
366 | "sha256": null,
367 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\lcm-lora-sdv1-5.safetensors.safetensors",
368 | "config": null
369 | },
370 | {
371 | "title": "Lora\\lcm-lora-sdxl.safetensors",
372 | "model_name": "Lora_lcm-lora-sdxl",
373 | "hash": null,
374 | "sha256": null,
375 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\lcm-lora-sdxl.safetensors",
376 | "config": null
377 | },
378 | {
379 | "title": "Lora\\LohaWhiteDewStyle_lohaV10.safetensors",
380 | "model_name": "Lora_LohaWhiteDewStyle_lohaV10",
381 | "hash": null,
382 | "sha256": null,
383 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\LohaWhiteDewStyle_lohaV10.safetensors",
384 | "config": null
385 | },
386 | {
387 | "title": "Lora\\lucyCyberpunk_35Epochs.safetensors",
388 | "model_name": "Lora_lucyCyberpunk_35Epochs",
389 | "hash": null,
390 | "sha256": null,
391 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\lucyCyberpunk_35Epochs.safetensors",
392 | "config": null
393 | },
394 | {
395 | "title": "Lora\\lucyCyberpunk_42Epochs.safetensors",
396 | "model_name": "Lora_lucyCyberpunk_42Epochs",
397 | "hash": null,
398 | "sha256": null,
399 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\lucyCyberpunk_42Epochs.safetensors",
400 | "config": null
401 | },
402 | {
403 | "title": "Lora\\megu-lokr.safetensors",
404 | "model_name": "Lora_megu-lokr",
405 | "hash": null,
406 | "sha256": null,
407 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\megu-lokr.safetensors",
408 | "config": null
409 | },
410 | {
411 | "title": "Lora\\mikapikazo.safetensors",
412 | "model_name": "Lora_mikapikazo",
413 | "hash": null,
414 | "sha256": null,
415 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\mikapikazo.safetensors",
416 | "config": null
417 | },
418 | {
419 | "title": "Lora\\natsumi_ikitottanka_ware_v002_animagine.safetensors",
420 | "model_name": "Lora_natsumi_ikitottanka_ware_v002_animagine",
421 | "hash": null,
422 | "sha256": null,
423 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\natsumi_ikitottanka_ware_v002_animagine.safetensors",
424 | "config": null
425 | },
426 | {
427 | "title": "Lora\\phoenixdressV.2-0000010.safetensors",
428 | "model_name": "Lora_phoenixdressV.2-0000010",
429 | "hash": null,
430 | "sha256": null,
431 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\phoenixdressV.2-0000010.safetensors",
432 | "config": null
433 | },
434 | {
435 | "title": "Lora\\rebuildOfEvangelionStyle_4LoconLycoris.safetensors",
436 | "model_name": "Lora_rebuildOfEvangelionStyle_4LoconLycoris",
437 | "hash": null,
438 | "sha256": null,
439 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\rebuildOfEvangelionStyle_4LoconLycoris.safetensors",
440 | "config": null
441 | },
442 | {
443 | "title": "Lora\\taiwanDollLikeness_v10.safetensors",
444 | "model_name": "Lora_taiwanDollLikeness_v10",
445 | "hash": null,
446 | "sha256": null,
447 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\taiwanDollLikeness_v10.safetensors",
448 | "config": null
449 | },
450 | {
451 | "title": "Lora\\Ukiyo-e.safetensors",
452 | "model_name": "Lora_Ukiyo-e",
453 | "hash": null,
454 | "sha256": null,
455 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\Lora\\Ukiyo-e.safetensors",
456 | "config": null
457 | },
458 | {
459 | "title": "StableDiffusion\\16-bit-landscape_PublicPrompts.ckpt",
460 | "model_name": "StableDiffusion_16-bit-landscape_PublicPrompts",
461 | "hash": null,
462 | "sha256": null,
463 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\16-bit-landscape_PublicPrompts.ckpt",
464 | "config": null
465 | },
466 | {
467 | "title": "StableDiffusion\\allInOnePixelModel_v1.ckpt",
468 | "model_name": "StableDiffusion_allInOnePixelModel_v1",
469 | "hash": null,
470 | "sha256": null,
471 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\allInOnePixelModel_v1.ckpt",
472 | "config": null
473 | },
474 | {
475 | "title": "StableDiffusion\\Anything-V3.0-pruned-fp16.ckpt",
476 | "model_name": "StableDiffusion_Anything-V3.0-pruned-fp16",
477 | "hash": null,
478 | "sha256": null,
479 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\Anything-V3.0-pruned-fp16.ckpt",
480 | "config": null
481 | },
482 | {
483 | "title": "StableDiffusion\\AnythingGape.ckpt",
484 | "model_name": "StableDiffusion_AnythingGape",
485 | "hash": null,
486 | "sha256": null,
487 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AnythingGape.ckpt",
488 | "config": null
489 | },
490 | {
491 | "title": "StableDiffusion\\AOM2-NSFW-inpainting.safetensors",
492 | "model_name": "StableDiffusion_AOM2-NSFW-inpainting",
493 | "hash": null,
494 | "sha256": null,
495 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM2-NSFW-inpainting.safetensors",
496 | "config": null
497 | },
498 | {
499 | "title": "StableDiffusion\\AOM2-NSFW.safetensors",
500 | "model_name": "StableDiffusion_AOM2-NSFW",
501 | "hash": null,
502 | "sha256": null,
503 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM2-NSFW.safetensors",
504 | "config": null
505 | },
506 | {
507 | "title": "StableDiffusion\\AOM2-SFW-inpainting.safetensors",
508 | "model_name": "StableDiffusion_AOM2-SFW-inpainting",
509 | "hash": null,
510 | "sha256": null,
511 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM2-SFW-inpainting.safetensors",
512 | "config": null
513 | },
514 | {
515 | "title": "StableDiffusion\\AOM2-SFW.safetensors",
516 | "model_name": "StableDiffusion_AOM2-SFW",
517 | "hash": null,
518 | "sha256": null,
519 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM2-SFW.safetensors",
520 | "config": null
521 | },
522 | {
523 | "title": "StableDiffusion\\AOM3.safetensors [d124fc18f0]",
524 | "model_name": "StableDiffusion_AOM3",
525 | "hash": "d124fc18f0",
526 | "sha256": "d124fc18f0232d7f0a2a70358cdb1288af9e1ee8596200f50f0936be59514f6d",
527 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM3.safetensors",
528 | "config": null
529 | },
530 | {
531 | "title": "StableDiffusion\\AOM3A1.safetensors [f303d10812]",
532 | "model_name": "StableDiffusion_AOM3A1",
533 | "hash": "f303d10812",
534 | "sha256": "f303d108122ddd43a34c160bd46dbb08cb0e088e979acda0bf168a7a1f5820e0",
535 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM3A1.safetensors",
536 | "config": null
537 | },
538 | {
539 | "title": "StableDiffusion\\AOM3A2.safetensors",
540 | "model_name": "StableDiffusion_AOM3A2",
541 | "hash": null,
542 | "sha256": null,
543 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM3A2.safetensors",
544 | "config": null
545 | },
546 | {
547 | "title": "StableDiffusion\\AOM3A3.safetensors [eb4099ba9c]",
548 | "model_name": "StableDiffusion_AOM3A3",
549 | "hash": "eb4099ba9c",
550 | "sha256": "eb4099ba9cd5e69ab526fca22a2e967f286f8512d9509b735c892fa6468767cf",
551 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\AOM3A3.safetensors",
552 | "config": null
553 | },
554 | {
555 | "title": "StableDiffusion\\appIconsGenerator_v1.ckpt",
556 | "model_name": "StableDiffusion_appIconsGenerator_v1",
557 | "hash": null,
558 | "sha256": null,
559 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\appIconsGenerator_v1.ckpt",
560 | "config": null
561 | },
562 | {
563 | "title": "StableDiffusion\\arcane-diffusion-v3.ckpt",
564 | "model_name": "StableDiffusion_arcane-diffusion-v3",
565 | "hash": null,
566 | "sha256": null,
567 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\arcane-diffusion-v3.ckpt",
568 | "config": null
569 | },
570 | {
571 | "title": "StableDiffusion\\astranime_V6.safetensors",
572 | "model_name": "StableDiffusion_astranime_V6",
573 | "hash": null,
574 | "sha256": null,
575 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\astranime_V6.safetensors",
576 | "config": null
577 | },
578 | {
579 | "title": "StableDiffusion\\berry_mix.ckpt",
580 | "model_name": "StableDiffusion_berry_mix",
581 | "hash": null,
582 | "sha256": null,
583 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\berry_mix.ckpt",
584 | "config": null
585 | },
586 | {
587 | "title": "StableDiffusion\\ChromaV5 (2.0).ckpt",
588 | "model_name": "StableDiffusion_ChromaV5 (2.0)",
589 | "hash": null,
590 | "sha256": null,
591 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\ChromaV5 (2.0).ckpt",
592 | "config": null
593 | },
594 | {
595 | "title": "StableDiffusion\\classicAnim-v1.ckpt",
596 | "model_name": "StableDiffusion_classicAnim-v1",
597 | "hash": null,
598 | "sha256": null,
599 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\classicAnim-v1.ckpt",
600 | "config": null
601 | },
602 | {
603 | "title": "StableDiffusion\\comicDiffusion_v2.ckpt",
604 | "model_name": "StableDiffusion_comicDiffusion_v2",
605 | "hash": null,
606 | "sha256": null,
607 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\comicDiffusion_v2.ckpt",
608 | "config": null
609 | },
610 | {
611 | "title": "StableDiffusion\\complexLineart_v1.ckpt",
612 | "model_name": "StableDiffusion_complexLineart_v1",
613 | "hash": null,
614 | "sha256": null,
615 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\complexLineart_v1.ckpt",
616 | "config": null
617 | },
618 | {
619 | "title": "StableDiffusion\\Counterfeit-V2.5.safetensors",
620 | "model_name": "StableDiffusion_Counterfeit-V2.5",
621 | "hash": null,
622 | "sha256": null,
623 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\Counterfeit-V2.5.safetensors",
624 | "config": null
625 | },
626 | {
627 | "title": "StableDiffusion\\dalcefo_v3_painting.safetensors",
628 | "model_name": "StableDiffusion_dalcefo_v3_painting",
629 | "hash": null,
630 | "sha256": null,
631 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\dalcefo_v3_painting.safetensors",
632 | "config": null
633 | },
634 | {
635 | "title": "StableDiffusion\\darkSushiMixMix_colorful.safetensors",
636 | "model_name": "StableDiffusion_darkSushiMixMix_colorful",
637 | "hash": null,
638 | "sha256": null,
639 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\darkSushiMixMix_colorful.safetensors",
640 | "config": null
641 | },
642 | {
643 | "title": "StableDiffusion\\dbmai.ckpt",
644 | "model_name": "StableDiffusion_dbmai",
645 | "hash": null,
646 | "sha256": null,
647 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\dbmai.ckpt",
648 | "config": null
649 | },
650 | {
651 | "title": "StableDiffusion\\dewdrop_v15.ckpt",
652 | "model_name": "StableDiffusion_dewdrop_v15",
653 | "hash": null,
654 | "sha256": null,
655 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\dewdrop_v15.ckpt",
656 | "config": null
657 | },
658 | {
659 | "title": "StableDiffusion\\DosMix.safetensors",
660 | "model_name": "StableDiffusion_DosMix",
661 | "hash": null,
662 | "sha256": null,
663 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\DosMix.safetensors",
664 | "config": null
665 | },
666 | {
667 | "title": "StableDiffusion\\DreamShaper.safetensors",
668 | "model_name": "StableDiffusion_DreamShaper",
669 | "hash": null,
670 | "sha256": null,
671 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\DreamShaper.safetensors",
672 | "config": null
673 | },
674 | {
675 | "title": "StableDiffusion\\DreamShaper_8_pruned.safetensors",
676 | "model_name": "StableDiffusion_DreamShaper_8_pruned",
677 | "hash": null,
678 | "sha256": null,
679 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\DreamShaper_8_pruned.safetensors",
680 | "config": null
681 | },
682 | {
683 | "title": "StableDiffusion\\eldenRingStyle_v3.ckpt",
684 | "model_name": "StableDiffusion_eldenRingStyle_v3",
685 | "hash": null,
686 | "sha256": null,
687 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\eldenRingStyle_v3.ckpt",
688 | "config": null
689 | },
690 | {
691 | "title": "StableDiffusion\\f222.ckpt",
692 | "model_name": "StableDiffusion_f222",
693 | "hash": null,
694 | "sha256": null,
695 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\f222.ckpt",
696 | "config": null
697 | },
698 | {
699 | "title": "StableDiffusion\\gapingLargeInsertion_60.ckpt",
700 | "model_name": "StableDiffusion_gapingLargeInsertion_60",
701 | "hash": null,
702 | "sha256": null,
703 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\gapingLargeInsertion_60.ckpt",
704 | "config": null
705 | },
706 | {
707 | "title": "StableDiffusion\\ghibliDiffusion_v1.ckpt",
708 | "model_name": "StableDiffusion_ghibliDiffusion_v1",
709 | "hash": null,
710 | "sha256": null,
711 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\ghibliDiffusion_v1.ckpt",
712 | "config": null
713 | },
714 | {
715 | "title": "StableDiffusion\\ghostmix.safetensors",
716 | "model_name": "StableDiffusion_ghostmix",
717 | "hash": null,
718 | "sha256": null,
719 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\ghostmix.safetensors",
720 | "config": null
721 | },
722 | {
723 | "title": "StableDiffusion\\GJYDBTest_0.safetensors",
724 | "model_name": "StableDiffusion_GJYDBTest_0",
725 | "hash": null,
726 | "sha256": null,
727 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\GJYDBTest_0.safetensors",
728 | "config": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\GJYDBTest_0.yaml"
729 | },
730 | {
731 | "title": "StableDiffusion\\GrapefruitV4-inpainting.safetensors",
732 | "model_name": "StableDiffusion_GrapefruitV4-inpainting",
733 | "hash": null,
734 | "sha256": null,
735 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\GrapefruitV4-inpainting.safetensors",
736 | "config": null
737 | },
738 | {
739 | "title": "StableDiffusion\\GrapefruitV4.safetensors",
740 | "model_name": "StableDiffusion_GrapefruitV4",
741 | "hash": null,
742 | "sha256": null,
743 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\GrapefruitV4.safetensors",
744 | "config": null
745 | },
746 | {
747 | "title": "StableDiffusion\\hassanBlend14.ckpt",
748 | "model_name": "StableDiffusion_hassanBlend14",
749 | "hash": null,
750 | "sha256": null,
751 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\hassanBlend14.ckpt",
752 | "config": null
753 | },
754 | {
755 | "title": "StableDiffusion\\HD-17.ckpt",
756 | "model_name": "StableDiffusion_HD-17",
757 | "hash": null,
758 | "sha256": null,
759 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\HD-17.ckpt",
760 | "config": null
761 | },
762 | {
763 | "title": "StableDiffusion\\iCoMix-V04.safetensors",
764 | "model_name": "StableDiffusion_iCoMix-V04",
765 | "hash": null,
766 | "sha256": null,
767 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\iCoMix-V04.safetensors",
768 | "config": null
769 | },
770 | {
771 | "title": "StableDiffusion\\inkpunkDiffusion_v2.ckpt",
772 | "model_name": "StableDiffusion_inkpunkDiffusion_v2",
773 | "hash": null,
774 | "sha256": null,
775 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\inkpunkDiffusion_v2.ckpt",
776 | "config": null
777 | },
778 | {
779 | "title": "StableDiffusion\\isometricCities_v1.ckpt",
780 | "model_name": "StableDiffusion_isometricCities_v1",
781 | "hash": null,
782 | "sha256": null,
783 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\isometricCities_v1.ckpt",
784 | "config": null
785 | },
786 | {
787 | "title": "StableDiffusion\\jaksCreepyCritter..._v1.ckpt",
788 | "model_name": "StableDiffusion_jaksCreepyCritter..._v1",
789 | "hash": null,
790 | "sha256": null,
791 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\jaksCreepyCritter..._v1.ckpt",
792 | "config": null
793 | },
794 | {
795 | "title": "StableDiffusion\\jakSVoxelIshImage_v12.ckpt",
796 | "model_name": "StableDiffusion_jakSVoxelIshImage_v12",
797 | "hash": null,
798 | "sha256": null,
799 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\jakSVoxelIshImage_v12.ckpt",
800 | "config": null
801 | },
802 | {
803 | "title": "StableDiffusion\\jakSWoolitizeImag_woolitizeForSd15.ckpt",
804 | "model_name": "StableDiffusion_jakSWoolitizeImag_woolitizeForSd15",
805 | "hash": null,
806 | "sha256": null,
807 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\jakSWoolitizeImag_woolitizeForSd15.ckpt",
808 | "config": null
809 | },
810 | {
811 | "title": "StableDiffusion\\jhSSamdoesarts_v5.ckpt",
812 | "model_name": "StableDiffusion_jhSSamdoesarts_v5",
813 | "hash": null,
814 | "sha256": null,
815 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\jhSSamdoesarts_v5.ckpt",
816 | "config": null
817 | },
818 | {
819 | "title": "StableDiffusion\\JWST-Deep-Space.ckpt",
820 | "model_name": "StableDiffusion_JWST-Deep-Space",
821 | "hash": null,
822 | "sha256": null,
823 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\JWST-Deep-Space.ckpt",
824 | "config": null
825 | },
826 | {
827 | "title": "StableDiffusion\\Lyriel.safetensors",
828 | "model_name": "StableDiffusion_Lyriel",
829 | "hash": null,
830 | "sha256": null,
831 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\Lyriel.safetensors",
832 | "config": null
833 | },
834 | {
835 | "title": "StableDiffusion\\mdjrny-v4.ckpt",
836 | "model_name": "StableDiffusion_mdjrny-v4",
837 | "hash": null,
838 | "sha256": null,
839 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\mdjrny-v4.ckpt",
840 | "config": null
841 | },
842 | {
843 | "title": "StableDiffusion\\Meina.safetensors",
844 | "model_name": "StableDiffusion_Meina",
845 | "hash": null,
846 | "sha256": null,
847 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\Meina.safetensors",
848 | "config": null
849 | },
850 | {
851 | "title": "StableDiffusion\\microWorlds_v1.ckpt",
852 | "model_name": "StableDiffusion_microWorlds_v1",
853 | "hash": null,
854 | "sha256": null,
855 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\microWorlds_v1.ckpt",
856 | "config": null
857 | },
858 | {
859 | "title": "StableDiffusion\\midjourneyPapercut_v1.ckpt",
860 | "model_name": "StableDiffusion_midjourneyPapercut_v1",
861 | "hash": null,
862 | "sha256": null,
863 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\midjourneyPapercut_v1.ckpt",
864 | "config": null
865 | },
866 | {
867 | "title": "StableDiffusion\\MMD V1-18 MODEL MERGE (TONED DOWN) ALPHA.ckpt",
868 | "model_name": "StableDiffusion_MMD V1-18 MODEL MERGE (TONED DOWN) ALPHA",
869 | "hash": null,
870 | "sha256": null,
871 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\MMD V1-18 MODEL MERGE (TONED DOWN) ALPHA.ckpt",
872 | "config": null
873 | },
874 | {
875 | "title": "StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_300.ckpt",
876 | "model_name": "StableDiffusion_model_Anything-V3.0-pruned-fp16_GJY_300",
877 | "hash": null,
878 | "sha256": null,
879 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_300.ckpt",
880 | "config": null
881 | },
882 | {
883 | "title": "StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_600.ckpt",
884 | "model_name": "StableDiffusion_model_Anything-V3.0-pruned-fp16_GJY_600",
885 | "hash": null,
886 | "sha256": null,
887 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_600.ckpt",
888 | "config": null
889 | },
890 | {
891 | "title": "StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_900.ckpt",
892 | "model_name": "StableDiffusion_model_Anything-V3.0-pruned-fp16_GJY_900",
893 | "hash": null,
894 | "sha256": null,
895 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_900.ckpt",
896 | "config": null
897 | },
898 | {
899 | "title": "StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_1100.ckpt",
900 | "model_name": "StableDiffusion_model_Anything-V3.0-pruned-fp16_GJY_1100",
901 | "hash": null,
902 | "sha256": null,
903 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_Anything-V3.0-pruned-fp16_GJY_1100.ckpt",
904 | "config": null
905 | },
906 | {
907 | "title": "StableDiffusion\\model_v1-5-pruned-emaonly_GJY_400.ckpt",
908 | "model_name": "StableDiffusion_model_v1-5-pruned-emaonly_GJY_400",
909 | "hash": null,
910 | "sha256": null,
911 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_v1-5-pruned-emaonly_GJY_400.ckpt",
912 | "config": null
913 | },
914 | {
915 | "title": "StableDiffusion\\model_v1-5-pruned-emaonly_GJY_800.ckpt",
916 | "model_name": "StableDiffusion_model_v1-5-pruned-emaonly_GJY_800",
917 | "hash": null,
918 | "sha256": null,
919 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_v1-5-pruned-emaonly_GJY_800.ckpt",
920 | "config": null
921 | },
922 | {
923 | "title": "StableDiffusion\\model_v1-5-pruned-emaonly_GJY_1200.ckpt",
924 | "model_name": "StableDiffusion_model_v1-5-pruned-emaonly_GJY_1200",
925 | "hash": null,
926 | "sha256": null,
927 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\model_v1-5-pruned-emaonly_GJY_1200.ckpt",
928 | "config": null
929 | },
930 | {
931 | "title": "StableDiffusion\\modernDisney_v1.ckpt",
932 | "model_name": "StableDiffusion_modernDisney_v1",
933 | "hash": null,
934 | "sha256": null,
935 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\modernDisney_v1.ckpt",
936 | "config": null
937 | },
938 | {
939 | "title": "StableDiffusion\\OldFish_2348V12_clipfix.safetensors",
940 | "model_name": "StableDiffusion_OldFish_2348V12_clipfix",
941 | "hash": null,
942 | "sha256": null,
943 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\OldFish_2348V12_clipfix.safetensors",
944 | "config": null
945 | },
946 | {
947 | "title": "StableDiffusion\\OldFish_v10.safetensors",
948 | "model_name": "StableDiffusion_OldFish_v10",
949 | "hash": null,
950 | "sha256": null,
951 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\OldFish_v10.safetensors",
952 | "config": null
953 | },
954 | {
955 | "title": "StableDiffusion\\papercut_v1.ckpt",
956 | "model_name": "StableDiffusion_papercut_v1",
957 | "hash": null,
958 | "sha256": null,
959 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\papercut_v1.ckpt",
960 | "config": null
961 | },
962 | {
963 | "title": "StableDiffusion\\Pastel-Mix.safetensors",
964 | "model_name": "StableDiffusion_Pastel-Mix",
965 | "hash": null,
966 | "sha256": null,
967 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\Pastel-Mix.safetensors",
968 | "config": null
969 | },
970 | {
971 | "title": "StableDiffusion\\PerfectWorld.safetensors",
972 | "model_name": "StableDiffusion_PerfectWorld",
973 | "hash": null,
974 | "sha256": null,
975 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\PerfectWorld.safetensors",
976 | "config": null
977 | },
978 | {
979 | "title": "StableDiffusion\\PerfectWorldV2.safetensors",
980 | "model_name": "StableDiffusion_PerfectWorldV2",
981 | "hash": null,
982 | "sha256": null,
983 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\PerfectWorldV2.safetensors",
984 | "config": null
985 | },
986 | {
987 | "title": "StableDiffusion\\pixelArtSpriteDiffusion_v1.ckpt",
988 | "model_name": "StableDiffusion_pixelArtSpriteDiffusion_v1",
989 | "hash": null,
990 | "sha256": null,
991 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\pixelArtSpriteDiffusion_v1.ckpt",
992 | "config": null
993 | },
994 | {
995 | "title": "StableDiffusion\\pyros-bj-v1-0.ckpt",
996 | "model_name": "StableDiffusion_pyros-bj-v1-0",
997 | "hash": null,
998 | "sha256": null,
999 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\pyros-bj-v1-0.ckpt",
1000 | "config": null
1001 | },
1002 | {
1003 | "title": "StableDiffusion\\redshift-diffusion-v1.ckpt",
1004 | "model_name": "StableDiffusion_redshift-diffusion-v1",
1005 | "hash": null,
1006 | "sha256": null,
1007 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\redshift-diffusion-v1.ckpt",
1008 | "config": null
1009 | },
1010 | {
1011 | "title": "StableDiffusion\\RevAnimatedv11.safetensors",
1012 | "model_name": "StableDiffusion_RevAnimatedv11",
1013 | "hash": null,
1014 | "sha256": null,
1015 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\RevAnimatedv11.safetensors",
1016 | "config": null
1017 | },
1018 | {
1019 | "title": "StableDiffusion\\samdoesartsHomage_v1.ckpt",
1020 | "model_name": "StableDiffusion_samdoesartsHomage_v1",
1021 | "hash": null,
1022 | "sha256": null,
1023 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\samdoesartsHomage_v1.ckpt",
1024 | "config": null
1025 | },
1026 | {
1027 | "title": "StableDiffusion\\samdoesartsUltmerge_v1.ckpt",
1028 | "model_name": "StableDiffusion_samdoesartsUltmerge_v1",
1029 | "hash": null,
1030 | "sha256": null,
1031 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\samdoesartsUltmerge_v1.ckpt",
1032 | "config": null
1033 | },
1034 | {
1035 | "title": "StableDiffusion\\samdoesartsV2_v2.ckpt",
1036 | "model_name": "StableDiffusion_samdoesartsV2_v2",
1037 | "hash": null,
1038 | "sha256": null,
1039 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\samdoesartsV2_v2.ckpt",
1040 | "config": null
1041 | },
1042 | {
1043 | "title": "StableDiffusion\\sd-v1-4.ckpt",
1044 | "model_name": "StableDiffusion_sd-v1-4",
1045 | "hash": null,
1046 | "sha256": null,
1047 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\sd-v1-4.ckpt",
1048 | "config": null
1049 | },
1050 | {
1051 | "title": "StableDiffusion\\sd-v1-5-inpainting.ckpt",
1052 | "model_name": "StableDiffusion_sd-v1-5-inpainting",
1053 | "hash": null,
1054 | "sha256": null,
1055 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\sd-v1-5-inpainting.ckpt",
1056 | "config": null
1057 | },
1058 | {
1059 | "title": "StableDiffusion\\seraphm_v1.ckpt",
1060 | "model_name": "StableDiffusion_seraphm_v1",
1061 | "hash": null,
1062 | "sha256": null,
1063 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\seraphm_v1.ckpt",
1064 | "config": null
1065 | },
1066 | {
1067 | "title": "StableDiffusion\\SF_EB_1.1_ema_vae.ckpt",
1068 | "model_name": "StableDiffusion_SF_EB_1.1_ema_vae",
1069 | "hash": null,
1070 | "sha256": null,
1071 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\SF_EB_1.1_ema_vae.ckpt",
1072 | "config": null
1073 | },
1074 | {
1075 | "title": "StableDiffusion\\superheroDiffusion_v1.ckpt",
1076 | "model_name": "StableDiffusion_superheroDiffusion_v1",
1077 | "hash": null,
1078 | "sha256": null,
1079 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\superheroDiffusion_v1.ckpt",
1080 | "config": null
1081 | },
1082 | {
1083 | "title": "StableDiffusion\\synthwave_v1.ckpt",
1084 | "model_name": "StableDiffusion_synthwave_v1",
1085 | "hash": null,
1086 | "sha256": null,
1087 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\synthwave_v1.ckpt",
1088 | "config": null
1089 | },
1090 | {
1091 | "title": "StableDiffusion\\synthwavePunk_v2.ckpt",
1092 | "model_name": "StableDiffusion_synthwavePunk_v2",
1093 | "hash": null,
1094 | "sha256": null,
1095 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\synthwavePunk_v2.ckpt",
1096 | "config": null
1097 | },
1098 | {
1099 | "title": "StableDiffusion\\TestGJY.ckpt",
1100 | "model_name": "StableDiffusion_TestGJY",
1101 | "hash": null,
1102 | "sha256": null,
1103 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\TestGJY.ckpt",
1104 | "config": null
1105 | },
1106 | {
1107 | "title": "StableDiffusion\\v1-5-pruned-emaonly.ckpt",
1108 | "model_name": "StableDiffusion_v1-5-pruned-emaonly",
1109 | "hash": null,
1110 | "sha256": null,
1111 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\v1-5-pruned-emaonly.ckpt",
1112 | "config": null
1113 | },
1114 | {
1115 | "title": "StableDiffusion\\v1-5-pruned.ckpt",
1116 | "model_name": "StableDiffusion_v1-5-pruned",
1117 | "hash": null,
1118 | "sha256": null,
1119 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\v1-5-pruned.ckpt",
1120 | "config": null
1121 | },
1122 | {
1123 | "title": "StableDiffusion\\wd-v1-3-float16.ckpt",
1124 | "model_name": "StableDiffusion_wd-v1-3-float16",
1125 | "hash": null,
1126 | "sha256": null,
1127 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\wd-v1-3-float16.ckpt",
1128 | "config": null
1129 | },
1130 | {
1131 | "title": "StableDiffusion\\wd-v1-3-float32.ckpt",
1132 | "model_name": "StableDiffusion_wd-v1-3-float32",
1133 | "hash": null,
1134 | "sha256": null,
1135 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\wd-v1-3-float32.ckpt",
1136 | "config": null
1137 | },
1138 | {
1139 | "title": "StableDiffusion\\YesMix.safetensors",
1140 | "model_name": "StableDiffusion_YesMix",
1141 | "hash": null,
1142 | "sha256": null,
1143 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusion\\YesMix.safetensors",
1144 | "config": null
1145 | },
1146 | {
1147 | "title": "StableDiffusionAux\\stable_zero123.ckpt",
1148 | "model_name": "StableDiffusionAux_stable_zero123",
1149 | "hash": null,
1150 | "sha256": null,
1151 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionAux\\stable_zero123.ckpt",
1152 | "config": null
1153 | },
1154 | {
1155 | "title": "StableDiffusionAux\\svd_xt.safetensors",
1156 | "model_name": "StableDiffusionAux_svd_xt",
1157 | "hash": null,
1158 | "sha256": null,
1159 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionAux\\svd_xt.safetensors",
1160 | "config": null
1161 | },
1162 | {
1163 | "title": "StableDiffusionAux\\wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
1164 | "model_name": "StableDiffusionAux_wd-1-5-beta2-aesthetic-unclip-h-fp16",
1165 | "hash": null,
1166 | "sha256": null,
1167 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionAux\\wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors",
1168 | "config": null
1169 | },
1170 | {
1171 | "title": "StableDiffusionTurbo\\grogmixTURBO_v10.safetensors",
1172 | "model_name": "StableDiffusionTurbo_grogmixTURBO_v10",
1173 | "hash": null,
1174 | "sha256": null,
1175 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionTurbo\\grogmixTURBO_v10.safetensors",
1176 | "config": null
1177 | },
1178 | {
1179 | "title": "StableDiffusionTurbo\\sd_xl_turbo_1.0_fp16.safetensors",
1180 | "model_name": "StableDiffusionTurbo_sd_xl_turbo_1.0_fp16",
1181 | "hash": null,
1182 | "sha256": null,
1183 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionTurbo\\sd_xl_turbo_1.0_fp16.safetensors",
1184 | "config": null
1185 | },
1186 | {
1187 | "title": "StableDiffusionTurbo\\vxpXLTURBO_vxpXLV15.safetensors",
1188 | "model_name": "StableDiffusionTurbo_vxpXLTURBO_vxpXLV15",
1189 | "hash": null,
1190 | "sha256": null,
1191 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionTurbo\\vxpXLTURBO_vxpXLV15.safetensors",
1192 | "config": null
1193 | },
1194 | {
1195 | "title": "StableDiffusionXL\\aamXLAnimeMix_v10.safetensors [d48c2391e0]",
1196 | "model_name": "StableDiffusionXL_aamXLAnimeMix_v10",
1197 | "hash": "d48c2391e0",
1198 | "sha256": "d48c2391e04f7dbc83d8538b71be8a30991f3e4e2ff1a8a757b849381f769a8b",
1199 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\aamXLAnimeMix_v10.safetensors",
1200 | "config": null
1201 | },
1202 | {
1203 | "title": "StableDiffusionXL\\animagineXLV3_v30.safetensors [1449e5b0b9]",
1204 | "model_name": "StableDiffusionXL_animagineXLV3_v30",
1205 | "hash": "1449e5b0b9",
1206 | "sha256": "1449e5b0b9de87b0f414c5f29cb11ce3b3dc61fa2b320e784c9441720bf7b766",
1207 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\animagineXLV3_v30.safetensors",
1208 | "config": null
1209 | },
1210 | {
1211 | "title": "StableDiffusionXL\\animeIllustDiffusion_v071.safetensors",
1212 | "model_name": "StableDiffusionXL_animeIllustDiffusion_v071",
1213 | "hash": null,
1214 | "sha256": null,
1215 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\animeIllustDiffusion_v071.safetensors",
1216 | "config": null
1217 | },
1218 | {
1219 | "title": "StableDiffusionXL\\cosxlHK097EDITPix2pix_v097CosxlEDIT.safetensors",
1220 | "model_name": "StableDiffusionXL_cosxlHK097EDITPix2pix_v097CosxlEDIT",
1221 | "hash": null,
1222 | "sha256": null,
1223 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\cosxlHK097EDITPix2pix_v097CosxlEDIT.safetensors",
1224 | "config": null
1225 | },
1226 | {
1227 | "title": "StableDiffusionXL\\fantasyland_v10SDXLTurbo.ckpt [c6025e7e4b]",
1228 | "model_name": "StableDiffusionXL_fantasyland_v10SDXLTurbo",
1229 | "hash": "c6025e7e4b",
1230 | "sha256": "c6025e7e4b91cecfc444aa3e9047abc9a00791bc81e6b813ed385dc201adfcd5",
1231 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\fantasyland_v10SDXLTurbo.ckpt",
1232 | "config": null
1233 | },
1234 | {
1235 | "title": "StableDiffusionXL\\inkDyeingAnimeXL_v20.safetensors",
1236 | "model_name": "StableDiffusionXL_inkDyeingAnimeXL_v20",
1237 | "hash": null,
1238 | "sha256": null,
1239 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\inkDyeingAnimeXL_v20.safetensors",
1240 | "config": null
1241 | },
1242 | {
1243 | "title": "StableDiffusionXL\\juggernautXL_juggernautX.safetensors [d91d35736d]",
1244 | "model_name": "StableDiffusionXL_juggernautXL_juggernautX",
1245 | "hash": "d91d35736d",
1246 | "sha256": "d91d35736d8f2be038f760a9b0009a771ecf0a417e9b38c244a84ea4cb9c0c45",
1247 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\juggernautXL_juggernautX.safetensors",
1248 | "config": null
1249 | },
1250 | {
1251 | "title": "StableDiffusionXL\\ponyDiffusionV6XL_v6.safetensors",
1252 | "model_name": "StableDiffusionXL_ponyDiffusionV6XL_v6",
1253 | "hash": null,
1254 | "sha256": null,
1255 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\ponyDiffusionV6XL_v6.safetensors",
1256 | "config": null
1257 | },
1258 | {
1259 | "title": "StableDiffusionXL\\protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
1260 | "model_name": "StableDiffusionXL_protovisionXLHighFidelity3D_releaseV660Bakedvae",
1261 | "hash": null,
1262 | "sha256": null,
1263 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\protovisionXLHighFidelity3D_releaseV660Bakedvae.safetensors",
1264 | "config": null
1265 | },
1266 | {
1267 | "title": "StableDiffusionXL\\PVCStyleModelMovable_beta26.safetensors",
1268 | "model_name": "StableDiffusionXL_PVCStyleModelMovable_beta26",
1269 | "hash": null,
1270 | "sha256": null,
1271 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\PVCStyleModelMovable_beta26.safetensors",
1272 | "config": null
1273 | },
1274 | {
1275 | "title": "StableDiffusionXL\\robmixCosxlEdit_cosxlEdit10.safetensors",
1276 | "model_name": "StableDiffusionXL_robmixCosxlEdit_cosxlEdit10",
1277 | "hash": null,
1278 | "sha256": null,
1279 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\robmixCosxlEdit_cosxlEdit10.safetensors",
1280 | "config": null
1281 | },
1282 | {
1283 | "title": "StableDiffusionXL\\sd_xl_base_1.0_vaefix.safetensors",
1284 | "model_name": "StableDiffusionXL_sd_xl_base_1.0_vaefix",
1285 | "hash": null,
1286 | "sha256": null,
1287 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\sd_xl_base_1.0_vaefix.safetensors",
1288 | "config": null
1289 | },
1290 | {
1291 | "title": "StableDiffusionXL\\sd_xl_refiner_1.0_vaefix.safetensors",
1292 | "model_name": "StableDiffusionXL_sd_xl_refiner_1.0_vaefix",
1293 | "hash": null,
1294 | "sha256": null,
1295 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\StableDiffusionXL\\sd_xl_refiner_1.0_vaefix.safetensors",
1296 | "config": null
1297 | },
1298 | {
1299 | "title": "TripoSR\\triposr.ckpt",
1300 | "model_name": "TripoSR_triposr",
1301 | "hash": null,
1302 | "sha256": null,
1303 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\TripoSR\\triposr.ckpt",
1304 | "config": null
1305 | },
1306 | {
1307 | "title": "VAE\\kl-f8-anime2.ckpt",
1308 | "model_name": "VAE_kl-f8-anime2",
1309 | "hash": null,
1310 | "sha256": null,
1311 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\VAE\\kl-f8-anime2.ckpt",
1312 | "config": null
1313 | },
1314 | {
1315 | "title": "VAE\\vae-ft-mse-840000-ema-pruned.ckpt",
1316 | "model_name": "VAE_vae-ft-mse-840000-ema-pruned",
1317 | "hash": null,
1318 | "sha256": null,
1319 | "filename": "D:\\Projects\\AI\\0_Models\\2_Graphic\\VAE\\vae-ft-mse-840000-ema-pruned.ckpt",
1320 | "config": null
1321 | }
1322 | ]
--------------------------------------------------------------------------------