Giter Site home page Giter Site logo

Comments (19)

Trung0246 avatar Trung0246 commented on June 26, 2024 2

Oh it just a minor bug as it's related to how I implemented input/output expand stuff. It kinda annoying but hopefully easy to fix when I have time.

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024 1

workflow_grid

I also patched the code the bit, so make sure to update, otherwise the general workflow should works.

Currently Hub only support batch primitive data, not COMBO. I may plan to add BATCH support for COMBO probably.

Forgot to mentions the workflow is in the png.

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024 1

Hm that looks weird. Maybe I could a look when I have time.

from comfyui-0246.

DrJKL avatar DrJKL commented on June 26, 2024 1

image

I think these are the new connections.

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024 1

Oh I thought that we are talking about the first one. Maybe Jorge can try again. Yeah the one JLK mentions is the correct connection.

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024 1

I've made a [ sampler x scheduler ] version of this workflow, with different hubs.

But when I load the workflow, the 2 hubs that use __BATCH_COMBO__ are allways disconnected.

Is this a bug, or am I doing something wrong ?

sampler_scheduler

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024

Actually with the recent Script node you can create multiple batches then execute using cycle mode from the ScriptPlan which will iterate through every possible permutation ;)

Even better Hub node can directly create batch without going through JunctionBatch.

from comfyui-0246.

bananasss00 avatar bananasss00 commented on June 26, 2024

I haven't quite figured out these nodes yet, I'll be experimenting with them. There is not much information on how they work yet

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024

Just pushed another update to support COMBO. I guess I should stop "small fixes" for now.

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

@Trung0246 can you update your workflow here ?

When in run the queue, I've got this error:

Error occurred when executing 0246.Script:

list index out of range

File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 141, in recursive_execute
input_data_all = get_input_data(inputs, class_def, unique_id, outputs, prompt, extra_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-0246\utils.py", line 381, in new_func
res_value = old_func(*final_args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 26, in get_input_data
obj = outputs[input_unique_id][output_index]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

Yes, it's working !

Just noticed, in the workflow image, that the [ script_excet_data ] output used to be in another node ...

old_wf

from comfyui-0246.

DrJKL avatar DrJKL commented on June 26, 2024

I can replicate the noodles being detached on load.
Same from

  • The PNG you posted
  • A PNG workflow I exported after connecting
  • The metadata saved in the PNG output of an image generated
  • The workflow.json save

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

I was trying to make a version of the first workflow, with the Junction Batch nodes.

But I can't make new connections.

And if I unplug the old ones, they stop working !

For example, if I unplug this Junction Bach node from the Merge node, when I plug it again, the "COMBO" designation is gone, from the output and input connections.
There is only an [ * ] and the workflow is broken.

But if I connect from the Junction Bach node above, which still has the "COMBO" designation in the output, the connection is successful ( see bottom image ).

Is this a bug, or is there another way to make new connections ?

test

test2

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

Using the CastReroute node, I'm able to create new output connections for "FLOAT" and "INT", in the Junction Bach node

Once I have the correct designation on the Junction Bach output, I can delete the CastReroute node.

But there is no option for "COMBO" in the CastReroute node ...

test3

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024

The problem is COMBO did not actually exist internally but instead it is an array of string which decay to just a single STRING when processed. So that a weird quirk I'm unsure about when I implementing CastReroute and Hub, therefore I decided to leave it as it is. The problem is we wants to retain COMBO type (which is the case for Hub) to make it possible to connect to nodes that are actually expecting that type. Your best bet is convert COMBO to STRING before actually connecting to JunctionBatch then recast to * when connect to node that expecting COMBO.

All of this are why CastReroute exist in the first place, which is a tradeoff for being absurdly flexible.

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

I'm able to change the output to STRING in the Junction Batch nodes.
But it does not work with STRING or [ * ].
It only works with COMBO.

I'm only able to use the 8 nodes that @bananasss00 connected in his workflow, which already have the output connections as COMBO.
If I copy and paste these nodes or if I save them as a template, the connections are changed back to [ * ].

If there was a special trick to make this connection, he would probably have explained how to do this, when he shared his workflow, in the first post.

Perhaps there is not a trick, and this was working correctly when he made the workflow.
I noticed that in his workflow image, the Merge nodes had an option called "same".
This option does not exist anymore.
Maybe this was broken when this option was changed ?

ban

from comfyui-0246.

Trung0246 avatar Trung0246 commented on June 26, 2024

I guess at one time I added COMBO to CastReroute but later deleted it since it's pointless. Probably have to take a look on how to handle this. Also weird I remembered wildcard * works for anything including COMBO.

Also copy-paste is also iffy so that another bug to the list but honestly I think reverting to * is expected behavior since the type resolving mechanism doesn't have a concrete input/output type to rely on.

Yeah same no longer exist. It is now flat probably. This is irrelevant btw.

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

I did find a trick to do this !

We can use other nodes with COMBO inputs instead of CastReroute.
When a Primitive it's connected to them, the connection output is turned in to COMBO.
And the same happens if we connect the JunctionBatch node, instead.

cp

You could try to add COMBO to CastReroute again, because it's a more elegant solution.
There is a single unconnected CastReroute node ( set to INT ), the worflow from @bananasss00, but I guess he used this for all the connections types.

But, if you can make the [ * ] connections work correctly, it would be even better, because then we could copy / paste your nodes, and use them as templates.

Now, if the connection is [ * ], it gives this error:

Error occurred when executing 0246.JunctionBatch:

Type "*" of output "*:0" does not available in junction.

File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 151, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 81, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-0246\utils.py", line 381, in new_func
res_value = old_func(*final_args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\execution.py", line 65, in map_node_over_list
results.append(getattr(obj, func)(**input_data_all))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-0246\nodes.py", line 1296, in execute
return junction_impl(self, _id, _prompt, _workflow, gather_junction_impl(_junc_in, _id), _offset, _in_mode = True, _out_mode = True, _offset_mode = True, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Cui\cu_121_2\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-0246\nodes.py", line 220, in junction_impl
raise Exception(f"Type \"{elem['type']}\" of output \"{elem['name']}\" does not available in junction.")

from comfyui-0246.

JorgeR81 avatar JorgeR81 commented on June 26, 2024

I also noticed that in some cases the * seems to be able to replace COMBO, successfully.

Here I'm connecting a Merge node and Anything Everywhere? node.

The connection is named *, and the AE? node is able to broadcast the data, to the Highway Bach node.

hb

from comfyui-0246.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.