AIGODLIKE / ComfyUI-BlenderAI-node

Used for AI model generation, next-generation Blender rendering engine, texture enhancement&generation (based on ComfyUI)
GNU General Public License v3.0
741 stars 42 forks source link

Viewport conflict with BlenderKit #90

Closed agajdosi closed 3 months ago

agajdosi commented 4 months ago

Hi, I am dev of the BlenderKit add-on (https://github.com/BlenderKit/BlenderKit/releases) and just recently we have got report for performance issues when ComfyUI-BlenderAI-node add-on is enabled (https://github.com/BlenderKit/BlenderKit/issues/1107#issuecomment-2099916887).

I have tested today and the problem seems to be at the moment when someone pastes/types text into our searchbar and hits enter - Blender then freezes and CPU usage goes to 100%. I have modified our search function to debug print at its start, but it does not get there, search.search_update() is called only after the freeze:

class BlenderKitCommonSearchProps:
    # main search string
    search_keywords: StringProperty(
        name="Search",
        description="Search for these keywords",
        default="",
        update=search.search_update,
    )

If I understand it correctly it looks like ComfyUI-BlenderAI-node checks the viewport periodically? Is it possible it catches the change in the searh bar which and then starts its computation, which blocks the Blender from even calling the update function? Is it possible to turn off the viewport checks?

KarryCharon commented 4 months ago

Hi, I am dev of the BlenderKit add-on (https://github.com/BlenderKit/BlenderKit/releases) and just recently we have got report for performance issues when ComfyUI-BlenderAI-node add-on is enabled (BlenderKit/BlenderKit#1107 (comment)).

I have tested today and the problem seems to be at the moment when someone pastes/types text into our searchbar and hits enter - Blender then freezes and CPU usage goes to 100%. I have modified our search function to debug print at its start, but it does not get there, search.search_update() is called only after the freeze:

class BlenderKitCommonSearchProps:
    # main search string
    search_keywords: StringProperty(
        name="Search",
        description="Search for these keywords",
        default="",
        update=search.search_update,
    )

If I understand it correctly it looks like ComfyUI-BlenderAI-node checks the viewport periodically? Is it possible it catches the change in the searh bar which and then starts its computation, which blocks the Blender from even calling the update function? Is it possible to turn off the viewport checks?

Caused by very big Collection Array property.