tag:github.com,2008:https://github.com/Chaoses-Ib/ComfyScript/releases
Release notes from ComfyScript
2025-12-24T04:06:37Z
tag:github.com,2008:Repository/674782109/v0.7.0a1
2025-12-24T04:33:59Z
ComfyScript v0.7.0a1
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>To install this pre-release from PyPI (instead of a local git repository), <code>--pre</code> option is needed: <code>pip install -U --pre comfy-script[default]</code></p>
</div>
<ul>
<li>
<p>Transpiler: Support formatting node inputs as keyword arguments (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3756273687" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/119" data-hovercard-type="pull_request" data-hovercard-url="/Chaoses-Ib/ComfyScript/pull/119/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/pull/119">#119</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/longredzhong/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/longredzhong">@longredzhong</a>)</p>
<p>The default behavior is changed to format as keyword arguments if there are more than 2 inputs, for example:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="model, clip, vae = CheckpointLoaderSimple('v1-5-pruned-emaonly.ckpt')
conditioning = CLIPTextEncode('beautiful scenery nature glass bottle landscape, , purple galaxy bottle,', clip)
conditioning2 = CLIPTextEncode('text, watermark', clip)
latent = EmptyLatentImage(width=512, height=512, batch_size=1)
latent = KSampler(model=model, seed=156680208700286, steps=20, cfg=8, sampler_name='euler', scheduler='normal', positive=conditioning, negative=conditioning2, latent_image=latent, denoise=1)
image = VAEDecode(latent, vae)
SaveImage(image, 'ComfyUI')"><pre><span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CheckpointLoaderSimple</span>(<span class="pl-s">'v1-5-pruned-emaonly.ckpt'</span>)
<span class="pl-s1">conditioning</span> <span class="pl-c1">=</span> <span class="pl-en">CLIPTextEncode</span>(<span class="pl-s">'beautiful scenery nature glass bottle landscape, , purple galaxy bottle,'</span>, <span class="pl-s1">clip</span>)
<span class="pl-s1">conditioning2</span> <span class="pl-c1">=</span> <span class="pl-en">CLIPTextEncode</span>(<span class="pl-s">'text, watermark'</span>, <span class="pl-s1">clip</span>)
<span class="pl-s1">latent</span> <span class="pl-c1">=</span> <span class="pl-en">EmptyLatentImage</span>(<span class="pl-s1">width</span><span class="pl-c1">=</span><span class="pl-c1">512</span>, <span class="pl-s1">height</span><span class="pl-c1">=</span><span class="pl-c1">512</span>, <span class="pl-s1">batch_size</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">latent</span> <span class="pl-c1">=</span> <span class="pl-en">KSampler</span>(<span class="pl-s1">model</span><span class="pl-c1">=</span><span class="pl-s1">model</span>, <span class="pl-s1">seed</span><span class="pl-c1">=</span><span class="pl-c1">156680208700286</span>, <span class="pl-s1">steps</span><span class="pl-c1">=</span><span class="pl-c1">20</span>, <span class="pl-s1">cfg</span><span class="pl-c1">=</span><span class="pl-c1">8</span>, <span class="pl-s1">sampler_name</span><span class="pl-c1">=</span><span class="pl-s">'euler'</span>, <span class="pl-s1">scheduler</span><span class="pl-c1">=</span><span class="pl-s">'normal'</span>, <span class="pl-s1">positive</span><span class="pl-c1">=</span><span class="pl-s1">conditioning</span>, <span class="pl-s1">negative</span><span class="pl-c1">=</span><span class="pl-s1">conditioning2</span>, <span class="pl-s1">latent_image</span><span class="pl-c1">=</span><span class="pl-s1">latent</span>, <span class="pl-s1">denoise</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">image</span> <span class="pl-c1">=</span> <span class="pl-en">VAEDecode</span>(<span class="pl-s1">latent</span>, <span class="pl-s1">vae</span>)
<span class="pl-en">SaveImage</span>(<span class="pl-s1">image</span>, <span class="pl-s">'ComfyUI'</span>)</pre></div>
<p>CLI usage:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" --args [pos|pos2orkwd|kwd] Format node inputs as positional or keyword
arguments. [default: Pos2OrKwd]"><pre> --args [pos<span class="pl-k">|</span>pos2orkwd<span class="pl-k">|</span>kwd] Format node inputs as positional or keyword
arguments. [default: Pos2OrKwd]</pre></div>
<p>e.g. <code>python -m comfy_script.transpile --args kwd workflow.json</code></p>
</li>
<li>
<p>Runtime: <code>util</code>: Add <code>concat_latents</code>, <code>load_latent_from_path</code>, <code>save_latent_and_get_path</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3677182077" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/118" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/118/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/118">#118</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2164945201" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/29" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/29/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/29">#29</a>)</p>
<p>For example:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# For print
queue.watch_display(False)
with Workflow():
latent = EmptyLatentImage(batch_size=4)
latent_path = util.save_latent_and_get_path(latent)
print(latent_path)
with Workflow():
latent = util.load_latent_from_path(latent_path)
# Do something with the latent, for example:
SaveLatent(latent, 'latents/loaded')"><pre><span class="pl-c"># For print</span>
<span class="pl-s1">queue</span>.<span class="pl-c1">watch_display</span>(<span class="pl-c1">False</span>)
<span class="pl-k">with</span> <span class="pl-en">Workflow</span>():
<span class="pl-s1">latent</span> <span class="pl-c1">=</span> <span class="pl-en">EmptyLatentImage</span>(<span class="pl-s1">batch_size</span><span class="pl-c1">=</span><span class="pl-c1">4</span>)
<span class="pl-s1">latent_path</span> <span class="pl-c1">=</span> <span class="pl-s1">util</span>.<span class="pl-c1">save_latent_and_get_path</span>(<span class="pl-s1">latent</span>)
<span class="pl-en">print</span>(<span class="pl-s1">latent_path</span>)
<span class="pl-k">with</span> <span class="pl-en">Workflow</span>():
<span class="pl-s1">latent</span> <span class="pl-c1">=</span> <span class="pl-s1">util</span>.<span class="pl-c1">load_latent_from_path</span>(<span class="pl-s1">latent_path</span>)
<span class="pl-c"># Do something with the latent, for example:</span>
<span class="pl-en">SaveLatent</span>(<span class="pl-s1">latent</span>, <span class="pl-s">'latents/loaded'</span>)</pre></div>
</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.6.1
2025-11-20T14:39:51Z
ComfyScript v0.6.1
<ul>
<li>fix(runtime,client): event loop closed on Python 3.12+ (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3647137278" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/117" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/117/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/117">#117</a>)</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.6.0
2025-11-19T22:36:03Z
ComfyScript v0.6.0: Simpler to use
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>ComfyScript is a Python frontend and library for ComfyUI. See <a href="https://github.com/Chaoses-Ib/ComfyScript">README</a> for details and examples.</p>
</div>
<h3>New features</h3>
<ul>
<li>
<p>Python 3.14 support</p>
<p>(Solara UI doesn't support Python 3.14 yet: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3494878594" data-permission-text="Title is private" data-url="https://github.com/widgetti/solara/issues/1108" data-hovercard-type="pull_request" data-hovercard-url="/widgetti/solara/pull/1108/hovercard" href="https://github.com/widgetti/solara/pull/1108">widgetti/solara#1108</a>)</p>
</li>
<li>
<p>Runtime</p>
<ul>
<li>
<p>ComfyUI v3 schema support (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3470445047" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/113" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/113/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/113">#113</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2768758601" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/85" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/85/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/85">#85</a>)</p>
</li>
<li>
<p>Add <code>util</code> module with some utlity functions (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2164945201" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/29" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/29/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/29">#29</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2356092424" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/47" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/47/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/47">#47</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2599306101" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/76" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/76/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/76">#76</a>)</p>
<ul>
<li><code>get_int</code>, <code>get_float</code>, <code>get_str</code> and <code>get_images</code></li>
<li><code>concat_images</code></li>
<li><code>save_image</code> and <code>save_image_cwd</code></li>
<li><code>save_image_and_get_paths</code> and <code>load_image_from_paths</code></li>
</ul>
<p>For example:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="latent = KSampler(...)
image = VAEDecode(latent, vae)
images = util.get_images(image)
# `images` is of type `list[PIL.Image.Image]`"><pre><span class="pl-s1">latent</span> <span class="pl-c1">=</span> <span class="pl-en">KSampler</span>(...)
<span class="pl-s1">image</span> <span class="pl-c1">=</span> <span class="pl-en">VAEDecode</span>(<span class="pl-s1">latent</span>, <span class="pl-s1">vae</span>)
<span class="pl-s1">images</span> <span class="pl-c1">=</span> <span class="pl-s1">util</span>.<span class="pl-c1">get_images</span>(<span class="pl-s1">image</span>)
<span class="pl-c"># `images` is of type `list[PIL.Image.Image]`</span></pre></div>
</li>
<li>
<p>Add <code>node</code> module with <code>nodes</code> and <code>get</code> properties (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2111349678" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/17" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/17/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/17">#17</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2175457836" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/30" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/30/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/30">#30</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2388333705" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/59" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/59/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/59">#59</a>)</p>
<p>See <code>util</code> module for examples.</p>
</li>
<li>
<p>Virtual mode</p>
<ul>
<li><code>Workflow</code> only queues unqueued outputs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2164945201" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/29" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/29/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/29">#29</a>)</li>
<li>Support progress callbacks (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2255172802" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/36" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/36/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/36">#36</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2911812962" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/102" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/102/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/102">#102</a>)</li>
<li>Wake <code>result()</code> when set new output (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3148312097" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/108" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/108/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/108">#108</a>)</li>
</ul>
</li>
<li>
<p>Change <code>StrEnum</code> stub type to <code>StrEnum | str</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2541157167" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/71" data-hovercard-type="pull_request" data-hovercard-url="/Chaoses-Ib/ComfyScript/pull/71/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/pull/71">#71</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dwgrth/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dwgrth">@dwgrth</a>)</p>
</li>
<li>
<p>Using loaded comfyui if inside comfyui (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2922556584" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/104" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/104/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/104">#104</a>)</p>
</li>
<li>
<p>Share comfyui package context vars by default</p>
</li>
</ul>
</li>
</ul>
<h3>Docs</h3>
<ul>
<li>
<p>Installation</p>
<ul>
<li>
<p>Update installing only ComfyScript package (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2061311692" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/3" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/3/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/3">#3</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3640388400" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/115" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/115/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/115">#115</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2836562650" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/95" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/95/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/95">#95</a>)</p>
<p>Install/update ComfyScript:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python -m pip install -U "comfy-script[default]""><pre>python -m pip install -U <span class="pl-s"><span class="pl-pds">"</span>comfy-script[default]<span class="pl-pds">"</span></span></pre></div>
<p>Save and run the following code to test (e.g. <code>python examples/runtime.py</code>):</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="from comfy_script.runtime import *
# ComfyUI server/path
# or: load(r'path/to/ComfyUI')
load('http://127.0.0.1:8188/')
from comfy_script.runtime.nodes import *
with Workflow(wait=True):
image = EmptyImage()
images = util.get_images(image, save=True)"><pre><span class="pl-k">from</span> <span class="pl-s1">comfy_script</span>.<span class="pl-s1">runtime</span> <span class="pl-k">import</span> <span class="pl-c1">*</span>
<span class="pl-c"># ComfyUI server/path</span>
<span class="pl-c"># or: load(r'path/to/ComfyUI')</span>
<span class="pl-en">load</span>(<span class="pl-s">'http://127.0.0.1:8188/'</span>)
<span class="pl-k">from</span> <span class="pl-s1">comfy_script</span>.<span class="pl-s1">runtime</span>.<span class="pl-s1">nodes</span> <span class="pl-k">import</span> <span class="pl-c1">*</span>
<span class="pl-k">with</span> <span class="pl-en">Workflow</span>(<span class="pl-s1">wait</span><span class="pl-c1">=</span><span class="pl-c1">True</span>):
<span class="pl-s1">image</span> <span class="pl-c1">=</span> <span class="pl-en">EmptyImage</span>()
<span class="pl-s1">images</span> <span class="pl-c1">=</span> <span class="pl-s1">util</span>.<span class="pl-c1">get_images</span>(<span class="pl-s1">image</span>, <span class="pl-s1">save</span><span class="pl-c1">=</span><span class="pl-c1">True</span>)</pre></div>
<p>Or without installing Python, directly use ComfyScript with <a href="https://docs.astral.sh/uv/" rel="nofollow">uv</a>:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="uv run examples/uv.py"><pre>uv run examples/uv.py</pre></div>
<p><code>examples/uv.py</code>:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# /// script
# requires-python = ">=3.9"
# dependencies = [
# "comfy-script[default]",
# ]
# ///
from comfy_script.runtime import *
load('http://127.0.0.1:8188/')
from comfy_script.runtime.nodes import *
with Workflow(wait=True):
image = EmptyImage()
images = util.get_images(image, save=True)"><pre><span class="pl-c"># /// script</span>
<span class="pl-c"># requires-python = ">=3.9"</span>
<span class="pl-c"># dependencies = [</span>
<span class="pl-c"># "comfy-script[default]",</span>
<span class="pl-c"># ]</span>
<span class="pl-c"># ///</span>
<span class="pl-k">from</span> <span class="pl-s1">comfy_script</span>.<span class="pl-s1">runtime</span> <span class="pl-k">import</span> <span class="pl-c1">*</span>
<span class="pl-en">load</span>(<span class="pl-s">'http://127.0.0.1:8188/'</span>)
<span class="pl-k">from</span> <span class="pl-s1">comfy_script</span>.<span class="pl-s1">runtime</span>.<span class="pl-s1">nodes</span> <span class="pl-k">import</span> <span class="pl-c1">*</span>
<span class="pl-k">with</span> <span class="pl-en">Workflow</span>(<span class="pl-s1">wait</span><span class="pl-c1">=</span><span class="pl-c1">True</span>):
<span class="pl-s1">image</span> <span class="pl-c1">=</span> <span class="pl-en">EmptyImage</span>()
<span class="pl-s1">images</span> <span class="pl-c1">=</span> <span class="pl-s1">util</span>.<span class="pl-c1">get_images</span>(<span class="pl-s1">image</span>, <span class="pl-s1">save</span><span class="pl-c1">=</span><span class="pl-c1">True</span>)</pre></div>
</li>
<li>
<p>Add installing with ComfyUI & uv venv</p>
</li>
<li>
<p>Add VS Code Notebook kernel list troubleshooting</p>
</li>
<li>
<p>Bump comfyui package tested version (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2236728516" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/33" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/33/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/33">#33</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2164945201" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/29" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/29/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/29">#29</a>)</p>
</li>
</ul>
</li>
<li>
<p>Transpiler: Update usage</p>
<p>If you installed ComfyScript outside of ComfyUI, you can still use the transpiler by:</p>
<ul>
<li>CLI
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python -m comfy_script.transpile "workflow.json" --api http://127.0.0.1:8188/"><pre>python -m comfy_script.transpile <span class="pl-s"><span class="pl-pds">"</span>workflow.json<span class="pl-pds">"</span></span> --api http://127.0.0.1:8188/</pre></div>
Or without installing ComfyScript, directly with uv:
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="uvx --from "comfy-script[default]" python -m comfy_script.transpile "workflow.json" --api http://127.0.0.1:8188/"><pre>uvx --from <span class="pl-s"><span class="pl-pds">"</span>comfy-script[default]<span class="pl-pds">"</span></span> python -m comfy_script.transpile <span class="pl-s"><span class="pl-pds">"</span>workflow.json<span class="pl-pds">"</span></span> --api http://127.0.0.1:8188/</pre></div>
</li>
<li>Python code</li>
<li>Jupyter Notebook / web: MetadataViewer</li>
</ul>
</li>
<li>
<p>Runtime</p>
<ul>
<li>Add docs for <code>Workflow</code> context manager</li>
</ul>
</li>
<li>
<p>Images: <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/Images/README.md#metadata">Add metadata</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2113258863" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/19" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/19/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/19">#19</a>)</p>
</li>
<li>
<p>Models</p>
<ul>
<li>Add saving checkpoints (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2740793670" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/82" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/82/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/82">#82</a>)</li>
<li>Add note about comfyui package path (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511300277" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/68" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/68/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/68">#68</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511342189" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/69" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/69/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/69">#69</a>)</li>
</ul>
</li>
<li>
<p>Examples</p>
<ul>
<li>Add plotting, ui and flux examples (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2061311692" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/3" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/3/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/3">#3</a>)</li>
<li>Fix Modal example return PIL images (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2552485730" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/73" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/73/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/73">#73</a>)</li>
</ul>
</li>
<li>
<p>Add projects using this library and some examples (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3148312097" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/108" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/108/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/108">#108</a>)</p>
<ul>
<li><a href="https://github.com/ambocclusion/ComfyUI-SDXL-DiscordBot">CarbBot: Simple Discord Bot for interfacing with ComfyUI and/or the Stability AI API for text2image generation using the SDXL model</a></li>
<li><a href="https://github.com/Praecordi/comfy-character-app">comfy-character-app: A ComfyUI and ComfyScript Gradio-based app for generating characters using a multi-step process.</a></li>
<li><a href="https://github.com/gameltb/io_comfyui">io_comfyui: Let Blender work with ComfyUI by ComfyScript.</a></li>
<li><a href="https://github.com/rhoninn11/mea_comfy">Mea comfy wrap: Simple script for wraping comfy ui workflows for future usage as a micro services with gRPC interface</a></li>
<li><a href="https://github.com/ambocclusion/the-searcher-SD">the-searcher-SD: proof of concept of a tool to enhance likeness of subjects in SDXL</a></li>
<li><a href="https://github.com/lingondricka2/Randomize_ComfyScript">Randomize_ComfyScript: Randomizer script for ComfyUI using ComfyScript</a></li>
</ul>
</li>
<li>
<p>Add <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/README.md#differences-from-comfyui-to-python-extension">differences from ComfyUI-to-Python-Extension</a></p>
</li>
</ul>
<h3>Changes</h3>
<ul>
<li>
<p><code>cli</code> extra (optional dependencies) is now enabled by default</p>
<p><code>click</code> is ~100KB. You can still disable this if you like.</p>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Runtime
<ul>
<li><code>main.server</code> is no longer the server instance (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2779183661" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/86" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/86/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/86">#86</a>)</li>
<li>ComfyUI <code>LogInterceptor</code> breaks Jupyter Notebook</li>
<li>redirect <code>__main__.__file__</code> to <code>ComfyUI/main.py</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2806925344" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/89" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/89/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/89">#89</a>)</li>
<li>Node/output type namespace confusion (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2128472468" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/22" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/22/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/22">#22</a>)</li>
<li>Virtual mode
<ul>
<li>Node output may be None</li>
<li>Extra bool inputs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2128472468" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/22" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/22/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/22">#22</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2625560215" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/80" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/80/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/80">#80</a>)</li>
<li>Output types may be lists (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2103874783" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/9" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/9/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/9">#9</a>,<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3005839162" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/106" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/106/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/106">#106</a>)</li>
</ul>
</li>
<li>Real mode
<ul>
<li>Unpack result for non-output nodes (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2768758601" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/85" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/85/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/85">#85</a>)</li>
<li>Support kwds only valid for prompt (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2768758601" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/85" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/85/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/85">#85</a>)</li>
<li>replace invalid chars in type stubs with <code>�</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2788450280" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/87" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/87/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/87">#87</a>)</li>
<li>Bool enum conversions (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2811230810" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/91" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/91/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/91">#91</a>)</li>
<li><code>new</code> node with original class (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3437800451" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/112" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/112/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/112">#112</a>)</li>
</ul>
</li>
<li>comfyui package breaks cli_args</li>
<li>comfyui package <code>LogInterceptor</code> breaks Jupyter Notebook too</li>
<li>comfyui package <code>receive_all_progress_notifications</code> is readonly now (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2470372325" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/65" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/65/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/65">#65</a>)</li>
</ul>
</li>
<li>Transpiler
<ul>
<li>Avoid move same input multiple times (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2363397549" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/55" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/55/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/55">#55</a>)</li>
<li>Prompt ignore hidden inputs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2768758601" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/85" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/85/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/85">#85</a>)</li>
</ul>
</li>
<li>Nodes
<ul>
<li>Update <code>ComfyUI_Ib_CustomNodes</code> to fix <code>PILToImage</code> and <code>PILToMask</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2754607593" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/83" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/83/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/83">#83</a>)</li>
</ul>
</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.1
2024-09-07T20:45:41Z
v0.5.1
<h3>Docs</h3>
<ul>
<li>Installation: Add <a href="https://github.com/Chaoses-Ib/ComfyScript#with-comfyui">Comfy-Cli</a> and <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/examples/modal.py">Modal example</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511300277" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/68" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/68/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/68">#68</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511342189" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/69" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/69/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/69">#69</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/the-dream-machine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/the-dream-machine">@the-dream-machine</a>)</li>
<li>Models: Add <a href="https://github.com/Chaoses-Ib/ComfyScript/tree/main/docs/Models#checkpoints">example code to list all checkpoints</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2470372325" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/65" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/65/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/65">#65</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511342189" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/69" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/69/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/69">#69</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Runtime: comfyui package not load <a href="https://github.com/Chaoses-Ib/comfyui-legacy">comfyui-legacy</a> nodes (all additional nodes) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2511300277" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/68" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/68/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/68">#68</a>)</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.0
2024-09-06T22:23:41Z
v0.5.0: Previews, CivitAI nodes, ImageViewer and MetadataViewer
<div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>ComfyScript is a Python frontend and library for ComfyUI. See <a href="https://github.com/Chaoses-Ib/ComfyScript">README</a> for details and examples.</p>
</div>
<h3>New features</h3>
<ul>
<li>
<p>Runtime</p>
<ul>
<li>
<p>Add node preview display and callbacks (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2255172802" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/36" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/36/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/36">#36</a>) (experimental)</p>
<p>Example usage from <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ambocclusion/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ambocclusion">@ambocclusion</a>:</p>
<details open="" class="details-reset border rounded-2">
<summary class="px-3 py-2">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-camera-video">
<path d="M16 3.75v8.5a.75.75 0 0 1-1.136.643L11 10.575v.675A1.75 1.75 0 0 1 9.25 13h-7.5A1.75 1.75 0 0 1 0 11.25v-6.5C0 3.784.784 3 1.75 3h7.5c.966 0 1.75.784 1.75 1.75v.675l3.864-2.318A.75.75 0 0 1 16 3.75Zm-6.5 1a.25.25 0 0 0-.25-.25h-7.5a.25.25 0 0 0-.25.25v6.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-6.5ZM11 8.825l3.5 2.1v-5.85l-3.5 2.1Z"></path>
</svg>
<span class="m-1">325685398-57d92290-eefb-49b2-80e8-ceefd76425c1.mp4</span>
<span class="dropdown-caret"></span>
</summary>
<video src="https://private-user-images.githubusercontent.com/50246090/365315535-1e4de7b6-a939-4dc3-9b38-91c368bc8f2b.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMTU1MzUtMWU0ZGU3YjYtYTkzOS00ZGMzLTliMzgtOTFjMzY4YmM4ZjJiLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3ZmM0ZDBjN2U1OTI1MjQxZTM2MDRmOTk2Mjg5MTI0NGY4MGEzNzE3OGJmY2M4MDQ5NmI3MjMzZDVlODRkNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-HndEup_E_E_e0E8zoggn3fShrWunbOnj8S8QjqnJ8U" data-canonical-src="https://private-user-images.githubusercontent.com/50246090/365315535-1e4de7b6-a939-4dc3-9b38-91c368bc8f2b.mp4?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMTU1MzUtMWU0ZGU3YjYtYTkzOS00ZGMzLTliMzgtOTFjMzY4YmM4ZjJiLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3ZmM0ZDBjN2U1OTI1MjQxZTM2MDRmOTk2Mjg5MTI0NGY4MGEzNzE3OGJmY2M4MDQ5NmI3MjMzZDVlODRkNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-HndEup_E_E_e0E8zoggn3fShrWunbOnj8S8QjqnJ8U" controls="controls" muted="muted" class="d-block rounded-bottom-2 border-top width-fit" style="max-height:640px; min-height: 200px">
</video>
</details>
</li>
<li>
<p>Show progress bar by <a href="https://github.com/tqdm/tqdm">tqdm</a> instead of custom <code>print()</code></p>
<p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/50246090/365314280-b6c05469-2a9e-4d16-9fe1-2afa5c14f5f5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMTQyODAtYjZjMDU0NjktMmE5ZS00ZDE2LTlmZTEtMmFmYTVjMTRmNWY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk3MzBmZGE1MWE0YzFkZDIwMDdjYTFiYjIzZjljYmNmYjAyMTdhYjcyYjNjYTE2MmRmNTlmNzQ3YjdjZTg3NzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xMtD9AqkqtfIZe1M6iWUGN_v23rRkyj0TOIsBkcU65o"><img src="https://private-user-images.githubusercontent.com/50246090/365314280-b6c05469-2a9e-4d16-9fe1-2afa5c14f5f5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMTQyODAtYjZjMDU0NjktMmE5ZS00ZDE2LTlmZTEtMmFmYTVjMTRmNWY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk3MzBmZGE1MWE0YzFkZDIwMDdjYTFiYjIzZjljYmNmYjAyMTdhYjcyYjNjYTE2MmRmNTlmNzQ3YjdjZTg3NzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xMtD9AqkqtfIZe1M6iWUGN_v23rRkyj0TOIsBkcU65o" alt="image" content-type-secured-asset="image/png" style="max-width: 100%;"></a></p>
</li>
<li>
<p>Virtual mode: <code>when_empty()</code> accepts callback without args (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2356102220" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/48" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/48/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/48">#48</a>)</p>
</li>
<li>
<p>Real mode: Add support for node cache (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2239972620" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/34" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/34/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/34">#34</a>) (experimental)</p>
</li>
<li>
<p>Docs</p>
<ul>
<li>Add <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/Runtime.md#type-stubs-not-working">troubleshooting for type stubs not working</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2354279528" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/44" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/44/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/44">#44</a>)</li>
<li>Add <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/Images/README.md#to-output-directory">retrieving images examples</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2443207330" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/64" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/64/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/64">#64</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2255172802" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/36" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/36/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/36">#36</a>)</li>
<li>Update <code>ComfyUIArgs</code> docs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2443207330" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/64" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/64/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/64">#64</a>)</li>
</ul>
</li>
</ul>
</li>
<li>
<p>Transpiler</p>
<ul>
<li>
<p>Support <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/Transpiler.md#cli">converting workflow JSON to runnable scripts via CLI</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2350038257" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/43" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/43/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/43">#43</a>)</p>
<p>Usage:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python -m comfy_script.transpile "tests\transpile\default.json" --runtime > script.py"><pre>python -m comfy_script.transpile <span class="pl-s"><span class="pl-pds">"</span>tests\transpile\default.json<span class="pl-pds">"</span></span> --runtime <span class="pl-k">></span> script.py</pre></div>
</li>
<li>
<p>Add settings for hook (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2152897012" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/27" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/27/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/27">#27</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2277379284" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/38" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/38/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/38">#38</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2349645777" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/42" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/42/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/42">#42</a>)</p>
<p><code>settings.toml</code>:</p>
<div class="highlight highlight-source-toml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[transpile.hook]
# When ComfyScript is installed as custom nodes, `SaveImage` and similar nodes will be hooked to automatically save the script as the image's metadata. The script will also be printed to the terminal.
# To disable a feature, change its value to `false`.
save_script = true
print_script = true
# Use workflows in API format instead of web UI format when possible.
# Web UI format contains more information, but may also contain some UI-only virtual nodes (e.g. custom Reroute, PrimitiveNode, Note nodes) that cannot be properly transpiled. API format has better compatibility at the cost of less readable output.
prefer_api_format = false"><pre>[<span class="pl-en">transpile</span>.<span class="pl-en">hook</span>]
<span class="pl-c"><span class="pl-c">#</span> When ComfyScript is installed as custom nodes, `SaveImage` and similar nodes will be hooked to automatically save the script as the image's metadata. The script will also be printed to the terminal.</span>
<span class="pl-c"><span class="pl-c">#</span> To disable a feature, change its value to `false`.</span>
<span class="pl-smi">save_script</span> = <span class="pl-c1">true</span>
<span class="pl-smi">print_script</span> = <span class="pl-c1">true</span>
<span class="pl-c"><span class="pl-c">#</span> Use workflows in API format instead of web UI format when possible.</span>
<span class="pl-c"><span class="pl-c">#</span> Web UI format contains more information, but may also contain some UI-only virtual nodes (e.g. custom Reroute, PrimitiveNode, Note nodes) that cannot be properly transpiled. API format has better compatibility at the cost of less readable output.</span>
<span class="pl-smi">prefer_api_format</span> = <span class="pl-c1">false</span></pre></div>
<p>These settings can also be overriden by environment variables and Python code, see <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/settings.example.toml"><code>settings.example.toml</code></a> for details.</p>
</li>
</ul>
</li>
<li>
<p>Nodes: Add <a href="https://github.com/Chaoses-Ib/civitai_comfy_nodes">civitai_comfy_nodes</a> to load checkpoints/loras from CivitAI</p>
<p>Examples:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="model, clip, vae = CivitAICheckpointLoader('101055@128078')
model, clip, vae = CivitAICheckpointLoader('https://civitai.com/models/101055?modelVersionId=128078')
model, clip, vae = CivitAICheckpointLoader('https://civitai.com/models/101055/sd-xl?modelVersionId=128078')
model, clip = CivitAILoraLoader(model, clip, '350450@391994', strength_clip=1, strength_model=1)
model, clip = CivitAILoraLoader(model, clip, 'https://civitai.com/models/350450?modelVersionId=391994', strength_clip=1, strength_model=1)
model, clip = CivitAILoraLoader(model, clip, 'https://civitai.com/models/350450/sdxl-lightning-lora-2step?modelVersionId=391994', strength_clip=1, strength_model=1)"><pre><span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAICheckpointLoader</span>(<span class="pl-s">'101055@128078'</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAICheckpointLoader</span>(<span class="pl-s">'https://civitai.com/models/101055?modelVersionId=128078'</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAICheckpointLoader</span>(<span class="pl-s">'https://civitai.com/models/101055/sd-xl?modelVersionId=128078'</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAILoraLoader</span>(<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s">'350450@391994'</span>, <span class="pl-s1">strength_clip</span><span class="pl-c1">=</span><span class="pl-c1">1</span>, <span class="pl-s1">strength_model</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAILoraLoader</span>(<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s">'https://civitai.com/models/350450?modelVersionId=391994'</span>, <span class="pl-s1">strength_clip</span><span class="pl-c1">=</span><span class="pl-c1">1</span>, <span class="pl-s1">strength_model</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAILoraLoader</span>(<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s">'https://civitai.com/models/350450/sdxl-lightning-lora-2step?modelVersionId=391994'</span>, <span class="pl-s1">strength_clip</span><span class="pl-c1">=</span><span class="pl-c1">1</span>, <span class="pl-s1">strength_model</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)</pre></div>
</li>
<li>
<p>UI</p>
<ul>
<li>
<p>ipywidgets: Add <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/03bc5854c075516ad7b1f8fefcf131bce3cca22a/docs/UI/ipywidgets.md#imageviewer">ImageViewer</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2362596793" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/51" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/51/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/51">#51</a>)</p>
<p>A simple image viewer that can display multiple images with optional titles.</p>
<p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/50246090/365308735-070323a5-9b00-4ea6-a625-2269782804aa.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMDg3MzUtMDcwMzIzYTUtOWIwMC00ZWE2LWE2MjUtMjI2OTc4MjgwNGFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY3MGI4MGIwNjU1ZTNlODE0MmYyMTE1OTRkNjk5NzM2MTViZGYzYzZjZTFjNDJkZGQyNTkyNmQ3MTE4YjI2NDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.apAPgmaKJ-Z8JKNtfSCHdp_ug7rMuG8wvtxmEXVV0ws"><img src="https://private-user-images.githubusercontent.com/50246090/365308735-070323a5-9b00-4ea6-a625-2269782804aa.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMDg3MzUtMDcwMzIzYTUtOWIwMC00ZWE2LWE2MjUtMjI2OTc4MjgwNGFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY3MGI4MGIwNjU1ZTNlODE0MmYyMTE1OTRkNjk5NzM2MTViZGYzYzZjZTFjNDJkZGQyNTkyNmQ3MTE4YjI2NDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.apAPgmaKJ-Z8JKNtfSCHdp_ug7rMuG8wvtxmEXVV0ws" alt="image" content-type-secured-asset="image/png" style="max-width: 100%;"></a></p>
</li>
<li>
<p>Solara: Add <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/UI/Solara.md">MetadataViewer</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2356247448" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/49" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/49/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/49">#49</a>)</p>
<p>A widget for viewing the metadata of an image generated by ComfyScript / ComfyUI / Stable Diffusion web UI. Workflow JSON files are supported too, including both the web UI format and the API format.</p>
<p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/50246090/365308790-aaecc983-3c91-47ac-9d69-1662ead0c560.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMDg3OTAtYWFlY2M5ODMtM2M5MS00N2FjLTlkNjktMTY2MmVhZDBjNTYwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkN2U1MjEzOGQ3Y2YzZmIyN2Y4ZjNjZDkxZGFiMDdmZGU3ZmU4MWVhMDM2MThkZTAxNGRlMmY3N2M1Yjk3ZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1y_-ikqUdl7ieQtFUvy_tCycLquz4aQ9sIFupvXOyfo"><img src="https://private-user-images.githubusercontent.com/50246090/365308790-aaecc983-3c91-47ac-9d69-1662ead0c560.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA0MDYwNDYsIm5iZiI6MTc3MDQwNTc0NiwicGF0aCI6Ii81MDI0NjA5MC8zNjUzMDg3OTAtYWFlY2M5ODMtM2M5MS00N2FjLTlkNjktMTY2MmVhZDBjNTYwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMjA2VDE5MjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkN2U1MjEzOGQ3Y2YzZmIyN2Y4ZjNjZDkxZGFiMDdmZGU3ZmU4MWVhMDM2MThkZTAxNGRlMmY3N2M1Yjk3ZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1y_-ikqUdl7ieQtFUvy_tCycLquz4aQ9sIFupvXOyfo" alt="image" content-type-secured-asset="image/png" style="max-width: 100%;"></a></p>
</li>
</ul>
</li>
<li>
<p>Docs</p>
<ul>
<li>Add <a href="https://github.com/Chaoses-Ib/ComfyScript/blob/main/docs/README.md#troubleshooting">installation troubleshooting</a> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2322368224" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/41" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/41/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/41">#41</a>)</li>
<li>Bump comfyui package tested version (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2470372325" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/65" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/65/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/65">#65</a>)</li>
</ul>
</li>
</ul>
<h3>Changes</h3>
<ul>
<li>
<p>Runtime: Virtual mode: Arguments of <code>queue.watch_display()</code> are changed (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2255172802" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/36" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/36/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/36">#36</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2362806654" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/52" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/52/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/52">#52</a>)</p>
<p>Before:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="def watch_display(self, display_node: bool = True, display_task: bool = True): ...
queue.watch_display(False, False)"><pre><span class="pl-k">def</span> <span class="pl-en">watch_display</span>(<span class="pl-s1">self</span>, <span class="pl-s1">display_node</span>: <span class="pl-smi">bool</span> <span class="pl-c1">=</span> <span class="pl-c1">True</span>, <span class="pl-s1">display_task</span>: <span class="pl-smi">bool</span> <span class="pl-c1">=</span> <span class="pl-c1">True</span>): ...
<span class="pl-s1">queue</span>.<span class="pl-c1">watch_display</span>(<span class="pl-c1">False</span>, <span class="pl-c1">False</span>)</pre></div>
<p>Now:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="def watch_display(self, all: bool | None = None, *, preview: bool | None = None, output: bool | None = None, task: bool | None = None): ...
queue.watch_display(False)
# or:
queue.watch_display(preview=False, output=False, task=False)"><pre><span class="pl-k">def</span> <span class="pl-en">watch_display</span>(<span class="pl-s1">self</span>, <span class="pl-s1">all</span>: <span class="pl-s1">bool</span> <span class="pl-c1">|</span> <span class="pl-c1">None</span> <span class="pl-c1">=</span> <span class="pl-c1">None</span>, <span class="pl-c1">*</span>, <span class="pl-s1">preview</span>: <span class="pl-s1">bool</span> <span class="pl-c1">|</span> <span class="pl-c1">None</span> <span class="pl-c1">=</span> <span class="pl-c1">None</span>, <span class="pl-s1">output</span>: <span class="pl-s1">bool</span> <span class="pl-c1">|</span> <span class="pl-c1">None</span> <span class="pl-c1">=</span> <span class="pl-c1">None</span>, <span class="pl-s1">task</span>: <span class="pl-s1">bool</span> <span class="pl-c1">|</span> <span class="pl-c1">None</span> <span class="pl-c1">=</span> <span class="pl-c1">None</span>): ...
<span class="pl-s1">queue</span>.<span class="pl-c1">watch_display</span>(<span class="pl-c1">False</span>)
<span class="pl-c"># or:</span>
<span class="pl-s1">queue</span>.<span class="pl-c1">watch_display</span>(<span class="pl-s1">preview</span><span class="pl-c1">=</span><span class="pl-c1">False</span>, <span class="pl-s1">output</span><span class="pl-c1">=</span><span class="pl-c1">False</span>, <span class="pl-s1">task</span><span class="pl-c1">=</span><span class="pl-c1">False</span>)</pre></div>
</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Runtime
<ul>
<li>Imported classes may be overridden by custom nodes (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2365948042" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/57" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/57/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/57">#57</a>)</li>
<li>Optional inputs should not be set if not provided (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2388333705" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/59" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/59/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/59">#59</a>)</li>
<li>Virtual mode
<ul>
<li>Enable connection to https comfyui server (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2269989200" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/37" data-hovercard-type="pull_request" data-hovercard-url="/Chaoses-Ib/ComfyScript/pull/37/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/pull/37">#37</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lucak5s/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lucak5s">@lucak5s</a>)</li>
<li>Not queue the workflow if an exception is raised (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2356102220" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/48" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/48/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/48">#48</a>)</li>
</ul>
</li>
<li>Real mode: Fix support for the latest version of comfyui package (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2470372325" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/65" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/65/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/65">#65</a>)</li>
</ul>
</li>
<li>Transpiler
<ul>
<li>Fallback to API format if web UI format breaks the transpiler (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2349645777" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/42" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/42/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/42">#42</a>)</li>
<li>Read workflow file in UTF-8 encoding (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2349645777" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/42" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/42/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/42">#42</a>)</li>
<li>Pos dict and unknown end node in workflow (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2349645777" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/42" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/42/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/42">#42</a>)</li>
<li>UI-only node <code>Reroute (rgthree)</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2349645777" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/42" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/42/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/42">#42</a>)</li>
</ul>
</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.0a5
2024-05-15T15:22:01Z
v0.5.0a5
<ul>
<li>feat(runtime/real): add node cache (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2239972620" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/34" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/34/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/34">#34</a>)</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.0a4
2024-05-09T11:13:23Z
v0.5.0a4
<h3>New features</h3>
<ul>
<li>
<p>Runtime: Show progress bar by <a href="https://github.com/tqdm/tqdm">tqdm</a> instead of custom <code>print()</code></p>
</li>
<li>
<p>Nodes: Add <a href="https://github.com/Chaoses-Ib/civitai_comfy_nodes">civitai_comfy_nodes</a> to load checkpoints/loras from CivitAI</p>
<p>Examples:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="model, clip, vae = CivitAICheckpointLoader('101055@128078')
model, clip, vae = CivitAICheckpointLoader('https://civitai.com/models/101055?modelVersionId=128078')
model, clip, vae = CivitAICheckpointLoader('https://civitai.com/models/101055/sd-xl?modelVersionId=128078')
model, clip = CivitAILoraLoader(model, clip, '350450@391994', strength_clip=1, strength_model=1)
model, clip = CivitAILoraLoader(model, clip, 'https://civitai.com/models/350450?modelVersionId=391994', strength_clip=1, strength_model=1)
model, clip = CivitAILoraLoader(model, clip, 'https://civitai.com/models/350450/sdxl-lightning-lora-2step?modelVersionId=391994', strength_clip=1, strength_model=1)"><pre><span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAICheckpointLoader</span>(<span class="pl-s">'101055@128078'</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAICheckpointLoader</span>(<span class="pl-s">'https://civitai.com/models/101055?modelVersionId=128078'</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s1">vae</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAICheckpointLoader</span>(<span class="pl-s">'https://civitai.com/models/101055/sd-xl?modelVersionId=128078'</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAILoraLoader</span>(<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s">'350450@391994'</span>, <span class="pl-s1">strength_clip</span><span class="pl-c1">=</span><span class="pl-c1">1</span>, <span class="pl-s1">strength_model</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAILoraLoader</span>(<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s">'https://civitai.com/models/350450?modelVersionId=391994'</span>, <span class="pl-s1">strength_clip</span><span class="pl-c1">=</span><span class="pl-c1">1</span>, <span class="pl-s1">strength_model</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)
<span class="pl-s1">model</span>, <span class="pl-s1">clip</span> <span class="pl-c1">=</span> <span class="pl-en">CivitAILoraLoader</span>(<span class="pl-s1">model</span>, <span class="pl-s1">clip</span>, <span class="pl-s">'https://civitai.com/models/350450/sdxl-lightning-lora-2step?modelVersionId=391994'</span>, <span class="pl-s1">strength_clip</span><span class="pl-c1">=</span><span class="pl-c1">1</span>, <span class="pl-s1">strength_model</span><span class="pl-c1">=</span><span class="pl-c1">1</span>)</pre></div>
</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.0a3
2024-05-03T14:15:41Z
v0.5.0a3
<ul>
<li>feat(transpile): add settings for hook (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2152897012" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/27" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/27/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/27">#27</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2277379284" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/38" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/38/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/38">#38</a>)</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.0a2
2024-04-29T21:21:05Z
v0.5.0a2
<ul>
<li>fix(client): enable connection to https comfyui server (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2269989200" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/37" data-hovercard-type="pull_request" data-hovercard-url="/Chaoses-Ib/ComfyScript/pull/37/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/pull/37">#37</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lucak5s/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lucak5s">@lucak5s</a>)</li>
</ul>
Chaoses-Ib
tag:github.com,2008:Repository/674782109/v0.5.0a1
2024-04-21T21:52:43Z
v0.5.0a1
<ul>
<li>feat(runtime): add node preview display and callbacks (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2255172802" data-permission-text="Title is private" data-url="https://github.com/Chaoses-Ib/ComfyScript/issues/36" data-hovercard-type="issue" data-hovercard-url="/Chaoses-Ib/ComfyScript/issues/36/hovercard" href="https://github.com/Chaoses-Ib/ComfyScript/issues/36">#36</a>)</li>
</ul>
<p>Note: To install a pre-release version from PyPI instead of a local git repository, <code>--pre</code> option is needed: <code>pip install -U --pre comfy-script[default]</code></p>
Chaoses-Ib