haybale-comfyui 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. haybale_comfyui-0.0.1/.gitignore +42 -0
  2. haybale_comfyui-0.0.1/PKG-INFO +13 -0
  3. haybale_comfyui-0.0.1/README.md +27 -0
  4. haybale_comfyui-0.0.1/haybale_comfyui/OVERVIEW.md +13 -0
  5. haybale_comfyui-0.0.1/haybale_comfyui/QUICKREF.md +10 -0
  6. haybale_comfyui-0.0.1/haybale_comfyui/__init__.py +103 -0
  7. haybale_comfyui-0.0.1/haybale_comfyui/adapters/__init__.py +0 -0
  8. haybale_comfyui-0.0.1/haybale_comfyui/docs/haybale-comfyui.node.ComfyUIWorkflowNode.md +41 -0
  9. haybale_comfyui-0.0.1/haybale_comfyui/docs/haybale-comfyui.panel.ComfyUISettingsPanel.md +14 -0
  10. haybale_comfyui-0.0.1/haybale_comfyui/docs/haybale-comfyui.setting.ComfyUISettings.md +9 -0
  11. haybale_comfyui-0.0.1/haybale_comfyui/editors/__init__.py +0 -0
  12. haybale_comfyui-0.0.1/haybale_comfyui/haybale.toml +48 -0
  13. haybale_comfyui-0.0.1/haybale_comfyui/macros/.gitkeep +0 -0
  14. haybale_comfyui-0.0.1/haybale_comfyui/nodes/__init__.py +0 -0
  15. haybale_comfyui-0.0.1/haybale_comfyui/nodes/comfyui_workflow.py +372 -0
  16. haybale_comfyui-0.0.1/haybale_comfyui/panels/__init__.py +0 -0
  17. haybale_comfyui-0.0.1/haybale_comfyui/panels/comfyui_settings_panel.py +32 -0
  18. haybale_comfyui-0.0.1/haybale_comfyui/runtime/__init__.py +0 -0
  19. haybale_comfyui-0.0.1/haybale_comfyui/runtime/client.py +250 -0
  20. haybale_comfyui-0.0.1/haybale_comfyui/runtime/directory.py +146 -0
  21. haybale_comfyui-0.0.1/haybale_comfyui/runtime/images.py +27 -0
  22. haybale_comfyui-0.0.1/haybale_comfyui/runtime/placeholders.py +279 -0
  23. haybale_comfyui-0.0.1/haybale_comfyui/runtime/tracker.py +169 -0
  24. haybale_comfyui-0.0.1/haybale_comfyui/settings/__init__.py +0 -0
  25. haybale_comfyui-0.0.1/haybale_comfyui/settings/comfyui_settings.py +53 -0
  26. haybale_comfyui-0.0.1/haybale_comfyui/skins/__init__.py +0 -0
  27. haybale_comfyui-0.0.1/haybale_comfyui/states/__init__.py +0 -0
  28. haybale_comfyui-0.0.1/haybale_comfyui/themes/__init__.py +0 -0
  29. haybale_comfyui-0.0.1/haybale_comfyui/types/__init__.py +0 -0
  30. haybale_comfyui-0.0.1/haybale_comfyui/widgets/__init__.py +0 -0
  31. haybale_comfyui-0.0.1/pyproject.toml +37 -0
@@ -0,0 +1,42 @@
1
+ # Patterns below are anchored with a leading slash (/build/) so they match only
2
+ # at the repo root. An unanchored pattern (build/) matches at EVERY depth —
3
+ # including inside barn/, where it would silently exclude your library's own
4
+ # files. See the note at the end of this file before adding patterns.
5
+
6
+ # Byte-compiled / optimized / DLL files
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # Distribution / packaging (root only)
12
+ /build/
13
+ /dist/
14
+ *.egg-info/
15
+ *.egg
16
+
17
+ # Virtual environments (root only)
18
+ /.venv/
19
+ /venv/
20
+ /env/
21
+
22
+ # Test / type-check caches
23
+ .pytest_cache/
24
+ .ruff_cache/
25
+ .mypy_cache/
26
+ .tox/
27
+ .coverage
28
+ htmlcov/
29
+
30
+ # Editor / OS
31
+ .DS_Store
32
+ .idea/
33
+ .vscode/
34
+
35
+ # Haywire per-session UI state (open graph, pan/zoom) — not project state
36
+ .haywire/workspace_state.json
37
+
38
+ # ── Before you add a pattern ────────────────────────────────────────────────
39
+ # Anything ignored inside barn/<your-library>/ will be MISSING for everyone who
40
+ # installs your library — haywire share publishes by git URL, so consumers get
41
+ # a clone of this repo, not a built package. If a pattern is only meant for the
42
+ # repo root, anchor it with a leading slash: /build/ not build/.
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.5
2
+ Name: haybale-comfyui
3
+ Version: 0.0.1
4
+ Summary: Run ComfyUI workflows on a ComfyUI server
5
+ License: MIT
6
+ Keywords: comfyui,diffusion,image,remote
7
+ Requires-Python: >=3.12
8
+ Requires-Dist: haybale-image>=0.3.4
9
+ Requires-Dist: haywire-core>=0.3.4
10
+ Requires-Dist: httpx>=0.27
11
+ Requires-Dist: numpy
12
+ Requires-Dist: pillow
13
+ Requires-Dist: websockets>=13
@@ -0,0 +1,27 @@
1
+ # ComfyUI
2
+
3
+ <!-- marketstall:share-url:start -->
4
+ Always the latest (tracks the current branch):
5
+
6
+ ```sh
7
+ https://github.com/going-haywire/haybale-comfyui/blob/master/marketstall.toml
8
+ ```
9
+
10
+ Frozen to this version:
11
+
12
+ ```sh
13
+ https://github.com/going-haywire/haybale-comfyui/blob/v0.0.1/marketstall.toml
14
+ ```
15
+ <!-- marketstall:share-url:end -->
16
+
17
+ Run ComfyUI workflows on a ComfyUI server
18
+
19
+ ## Nodes
20
+ ### Image
21
+ - **ComfyUI Workflow** — Runs a workflow on a ComfyUI server and returns its images
22
+
23
+ ## Settings
24
+ - **ComfyUI** — Server address, authentication and timeout
25
+
26
+ ## Panels
27
+ - **ComfyUI** — Server address, authentication and timeout for ComfyUI workflows.
@@ -0,0 +1,13 @@
1
+ # ComfyUI
2
+
3
+ Run ComfyUI workflows on a ComfyUI server
4
+
5
+ ## Nodes
6
+ ### Image
7
+ - **ComfyUI Workflow** — Runs a workflow on a ComfyUI server and returns its images
8
+
9
+ ## Settings
10
+ - **ComfyUI** — Server address, authentication and timeout
11
+
12
+ ## Panels
13
+ - **ComfyUI** — Server address, authentication and timeout for ComfyUI workflows.
@@ -0,0 +1,10 @@
1
+ # haybale-comfyui — component index (v0.0.1)
2
+
3
+ ## node
4
+ - `haybale-comfyui:node:ComfyUIWorkflowNode` — ComfyUI Workflow — Runs a workflow on a ComfyUI server and returns its images _tags: comfyui, comfy, workflow, diffusion, stable diffusion, generate, remote_
5
+
6
+ ## setting
7
+ - `haybale-comfyui:setting:ComfyUISettings` — ComfyUI — Server address, authentication and timeout
8
+
9
+ ## panel
10
+ - `haybale-comfyui:panel:ComfyUISettingsPanel` — ComfyUI — Server address, authentication and timeout for ComfyUI workflows.
@@ -0,0 +1,103 @@
1
+ """
2
+ Local haybale library for the haybale-comfyui project.
3
+
4
+ Add your custom components in the corresponding folders:
5
+ - nodes/ — node definitions
6
+ - macros/ — macro documents (.hwm)
7
+ - types/ — custom data types
8
+ - widgets/ — UI widgets for data types
9
+ - skins/ — custom node skins
10
+ - adapters/ — type-to-type conversion adapters
11
+ - settings/ — library settings definitions
12
+ - states/ — library app and session states
13
+ - themes/ — workbench and node themes
14
+ - panels/ — custom UI panels
15
+ - editors/ — custom UI editors
16
+ """
17
+
18
+ from pathlib import Path
19
+
20
+ from haywire.core.library.base import BaseLibrary
21
+ from haywire.core.library.decorator import library
22
+ from haywire.core.adapter.registry import AdapterRegistry
23
+ from haywire.core.macro.registry import MacroRegistry
24
+ from haywire.core.node.registry import NodeRegistry
25
+ from haywire.core.settings.registry import SettingsRegistry
26
+ from haywire.core.types.registry import TypeRegistry
27
+ from haywire.core.state import LibraryStateRegistry
28
+
29
+ from haywire.ui.editor.registry import EditorTypeRegistry
30
+ from haywire.ui.panel.registry import PanelRegistry
31
+ from haywire.ui.skin.registry import SkinRegistry
32
+ from haywire.ui.themes.registry import ThemeRegistry
33
+ from haywire.ui.widget.registry import WidgetRegistry
34
+
35
+
36
+ @library(
37
+ file_watcher=True,
38
+ )
39
+ class Library(BaseLibrary):
40
+ """Local project library — add your components in the subfolders."""
41
+
42
+ def register_components(self):
43
+ """Register all components with the global registries."""
44
+ base_path = Path(__file__).parent
45
+
46
+ self.add_folder_to_registry(
47
+ folder_path=str(base_path / "settings"),
48
+ registry_cls=SettingsRegistry,
49
+ )
50
+
51
+ self.add_folder_to_registry(
52
+ folder_path=str(base_path / "states"),
53
+ registry_cls=LibraryStateRegistry,
54
+ )
55
+
56
+ self.add_folder_to_registry(
57
+ folder_path=str(base_path / "themes"),
58
+ registry_cls=ThemeRegistry,
59
+ )
60
+
61
+ self.add_folder_to_registry(
62
+ folder_path=str(base_path / "types"),
63
+ registry_cls=TypeRegistry,
64
+ )
65
+
66
+ self.add_folder_to_registry(
67
+ folder_path=str(base_path / "adapters"),
68
+ registry_cls=AdapterRegistry,
69
+ )
70
+
71
+ self.add_folder_to_registry(
72
+ folder_path=str(base_path / "widgets"),
73
+ registry_cls=WidgetRegistry,
74
+ )
75
+
76
+ self.add_folder_to_registry(
77
+ folder_path=str(base_path / "skins"),
78
+ registry_cls=SkinRegistry,
79
+ )
80
+
81
+ self.add_folder_to_registry(
82
+ folder_path=str(base_path / "nodes"),
83
+ registry_cls=NodeRegistry,
84
+ )
85
+
86
+ self.add_folder_to_registry(
87
+ folder_path=str(base_path / "macros"),
88
+ registry_cls=MacroRegistry,
89
+ )
90
+
91
+ self.add_folder_to_registry(
92
+ folder_path=str(base_path / "panels"),
93
+ registry_cls=PanelRegistry,
94
+ )
95
+
96
+ self.add_folder_to_registry(
97
+ folder_path=str(base_path / "editors"),
98
+ registry_cls=EditorTypeRegistry,
99
+ )
100
+
101
+ def validate(self) -> bool:
102
+ """Validate library structure."""
103
+ return True
@@ -0,0 +1,41 @@
1
+ # ComfyUI Workflow
2
+
3
+ `haybale-comfyui:node:ComfyUIWorkflowNode` · kind: node
4
+
5
+ Runs a workflow on a ComfyUI server and returns its images
6
+
7
+ ## Ports
8
+
9
+ | id | direction | type | description |
10
+ |---|---|---|---|
11
+ | `source.workflow` | config | `haywire-core:type:CHOICES` | A workflow open in ComfyUI that holds a Haywire Output, by its file name. Picking one rebuilds the node's inlets and outlets from its Haywire nodes |
12
+ | `source.reload` | config | `haywire-core:type:BOOL` | Take the workflow's latest version from ComfyUI |
13
+ | `progress.main` | config | `haywire-core:type:PROGRESS` | |
14
+ | `out_image` | outlet | `haybale-image:type:IMAGE` | Haywire Output 'Image' |
15
+
16
+ ## Settings
17
+
18
+ | name | bag | default | description |
19
+ |---|---|---|---|
20
+ | `workflow` | source | `''` | A workflow open in ComfyUI that holds a Haywire Output, by its file name. Picking one rebuilds the node's inlets and outlets from its Haywire nodes |
21
+ | `reload` | source | `False` | Take the workflow's latest version from ComfyUI |
22
+ | `main` | progress | `PROGRESS(active=False, fraction=None, label='')` | |
23
+
24
+ ## Notes
25
+
26
+ Runs a workflow on a ComfyUI server and returns its images.
27
+
28
+ Build the workflow in ComfyUI (server address: *ComfyUI* library settings) with the
29
+ comfyui-haywire nodes installed, and mark what haywire controls:
30
+
31
+ - *Haywire Parameter* becomes an inlet (number, integer, toggle, text, prompt, choice).
32
+ - *Haywire Image* becomes an IMAGE inlet.
33
+ - *Haywire Output* becomes an IMAGE outlet.
34
+
35
+ While the workflow is open in ComfyUI it appears under `Workflow` by its file name.
36
+ Picking it copies it into this node, so the graph runs later without ComfyUI's page
37
+ open. When the workflow changes in ComfyUI the card says so; press `Reload` to take
38
+ the new version.
39
+
40
+ The node runs again when an inlet changes. To get a new image from the same inputs,
41
+ expose the seed as a Haywire Parameter and change it.
@@ -0,0 +1,14 @@
1
+ # ComfyUI
2
+
3
+ `haybale-comfyui:panel:ComfyUISettingsPanel` · kind: panel
4
+
5
+ Server address, authentication and timeout for ComfyUI workflows.
6
+
7
+ ## Details
8
+
9
+ - **surface**: `barns`
10
+ - **order**: `20`
11
+
12
+ ## Notes
13
+
14
+ Server address, authentication and timeout for ComfyUI workflows.
@@ -0,0 +1,9 @@
1
+ # ComfyUI
2
+
3
+ `haybale-comfyui:setting:ComfyUISettings` · kind: setting
4
+
5
+ Server address, authentication and timeout
6
+
7
+ ## Notes
8
+
9
+ The ComfyUI server that ComfyUI Workflow nodes talk to.
@@ -0,0 +1,48 @@
1
+ # Library metadata. Canon for everything descriptive about this haybale; ships
2
+ # in the wheel beside __init__.py and is read from disk at runtime. Full field
3
+ # reference: docs/reference/files/haybale-toml.md
4
+
5
+ # ── identity — immutable ──────────────────────────────────────────────────
6
+ name = "haybale-comfyui" # pip distribution name; also prefixes every
7
+ # component's registry key, e.g. haybale-comfyui:node:Add
8
+
9
+ # ── written by scripts/bump_version.py / the share wizard, not by hand ──────
10
+ version = "0.0.1" # PEP 440, no "v" — canon here; pyproject.toml carries the synced copy
11
+
12
+ # ── display ───────────────────────────────────────────────────────────────
13
+ label = "ComfyUI" # human display name
14
+ description = "Run ComfyUI workflows on a ComfyUI server" # one line
15
+ tags = ["image", "comfyui", "diffusion", "remote"] # filter tags in the library browser
16
+
17
+ # ── behaviour ─────────────────────────────────────────────────────────────
18
+ # os = ["macos", "linux"] # macos/linux/windows; empty/absent = every platform
19
+ # on_reload = "none" # none (default) / refresh (reload tab) / restart (restart studio)
20
+
21
+ # Sibling haybales this library subscribes to, as MODULE names (not
22
+ # distribution names). Required for hot-reload scope tracking.
23
+ linked_libraries = ["haybale_image"]
24
+
25
+ # ── declared paths, relative to the project root ────────────────────────────
26
+ # examples_path = "examples/"
27
+ # tests_path = "tests/"
28
+
29
+ # One supplementary human-readable page: a bare filename in this directory.
30
+ # notes = "NOTES.md"
31
+
32
+ # ── absolute URLs, used verbatim ─────────────────────────────────────────────
33
+ # homepage_url = "https://example.com"
34
+ # documentation_url = "https://example.com/docs/"
35
+ # issues_url = "https://example.com/issues"
36
+
37
+ # Repeatable; url is optional. Written by the studio's library overview edit modal.
38
+ # [[authors]]
39
+ # name = "Your Name"
40
+ # url = "https://your.site"
41
+
42
+ # Omitted unless the library is being retired — hand-edited, no edit-modal field.
43
+ # [deprecated]
44
+ # since = "0.1.0"
45
+ # reason = "Superseded by haybale-successor."
46
+ # successor = "haybale-successor"
47
+ origin = "https://github.com/going-haywire/haybale-comfyui"
48
+ origin_provider = "github"
File without changes