merge
This commit is contained in:
		
						commit
						ad0a23434b
					
				@ -1139,6 +1139,9 @@ async def send_json_override(self, event, data, sid=None):
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if prompt_id in comfy_message_queues:
 | 
				
			||||||
 | 
					        comfy_message_queues[prompt_id].put_nowait({"event": event, "data": data})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    asyncio.create_task(update_run_ws_event(prompt_id, event, data))
 | 
					    asyncio.create_task(update_run_ws_event(prompt_id, event, data))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if event == "execution_start":
 | 
					    if event == "execution_start":
 | 
				
			||||||
@ -1225,20 +1228,21 @@ async def send_json_override(self, event, data, sid=None):
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            if class_type == "PreviewImage":
 | 
					            if class_type == "PreviewImage":
 | 
				
			||||||
                logger.info("Skipping preview image")
 | 
					                logger.info("Skipping preview image")
 | 
				
			||||||
                return
 | 
					            else:
 | 
				
			||||||
            await update_run_with_output(
 | 
					                await update_run_with_output(
 | 
				
			||||||
                prompt_id,
 | 
					                    prompt_id,
 | 
				
			||||||
                data.get("output"),
 | 
					                    data.get("output"),
 | 
				
			||||||
                node_id=data.get("node"),
 | 
					                    node_id=data.get("node"),
 | 
				
			||||||
                node_meta=node_meta,
 | 
					                    node_meta=node_meta,
 | 
				
			||||||
            )
 | 
					                )
 | 
				
			||||||
 | 
					                if prompt_id in comfy_message_queues:
 | 
				
			||||||
 | 
					                    comfy_message_queues[prompt_id].put_nowait(
 | 
				
			||||||
 | 
					                        {"event": "output_ready", "data": data}
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
            logger.info(f"Executed {class_type} {data}")
 | 
					            logger.info(f"Executed {class_type} {data}")
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            logger.info(f"Executed {data}")
 | 
					            logger.info(f"Executed {data}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if prompt_id in comfy_message_queues:
 | 
					 | 
				
			||||||
        comfy_message_queues[prompt_id].put_nowait({"event": event, "data": data})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Global variable to keep track of the last read line number
 | 
					# Global variable to keep track of the last read line number
 | 
				
			||||||
last_read_line_number = 0
 | 
					last_read_line_number = 0
 | 
				
			||||||
 | 
				
			|||||||
@ -92,8 +92,30 @@ const context = {
 | 
				
			|||||||
//   native_run_api_endpoint: "http://localhost:3011/api/run",
 | 
					//   native_run_api_endpoint: "http://localhost:3011/api/run",
 | 
				
			||||||
// };
 | 
					// };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getSelectedWorkflowInfo() {
 | 
					async function getSelectedWorkflowInfo() {
 | 
				
			||||||
  return context.selectedWorkflowInfo;
 | 
					  const workflow_info_promise = new Promise((resolve) => {
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      const handleMessage = (event) => {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					          const message = JSON.parse(event.data);
 | 
				
			||||||
 | 
					          if (message.type === "workflow_info") {
 | 
				
			||||||
 | 
					            resolve(message.data);
 | 
				
			||||||
 | 
					            window.removeEventListener("message", handleMessage);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        } catch (error) {
 | 
				
			||||||
 | 
					          console.error(error);
 | 
				
			||||||
 | 
					          resolve(undefined);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      window.addEventListener("message", handleMessage);
 | 
				
			||||||
 | 
					      sendEventToCD("workflow_info");
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					      console.error(error);
 | 
				
			||||||
 | 
					      resolve(undefined);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return workflow_info_promise;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function setSelectedWorkflowInfo(info) {
 | 
					function setSelectedWorkflowInfo(info) {
 | 
				
			||||||
@ -105,6 +127,8 @@ function setSelectedWorkflowInfo(info) {
 | 
				
			|||||||
const ext = {
 | 
					const ext = {
 | 
				
			||||||
  name: "BennyKok.ComfyUIDeploy",
 | 
					  name: "BennyKok.ComfyUIDeploy",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  native_mode: false,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  init(app) {
 | 
					  init(app) {
 | 
				
			||||||
    addButton();
 | 
					    addButton();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -114,6 +138,7 @@ const ext = {
 | 
				
			|||||||
    const org_display = queryParams.get("org_display");
 | 
					    const org_display = queryParams.get("org_display");
 | 
				
			||||||
    const origin = queryParams.get("origin");
 | 
					    const origin = queryParams.get("origin");
 | 
				
			||||||
    const workspace_mode = queryParams.get("workspace_mode");
 | 
					    const workspace_mode = queryParams.get("workspace_mode");
 | 
				
			||||||
 | 
					    this.native_mode = queryParams.get("native_mode") === "true";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (workspace_mode) {
 | 
					    if (workspace_mode) {
 | 
				
			||||||
      document.querySelector(".comfy-menu").style.display = "none";
 | 
					      document.querySelector(".comfy-menu").style.display = "none";
 | 
				
			||||||
@ -319,7 +344,10 @@ const ext = {
 | 
				
			|||||||
                false,
 | 
					                false,
 | 
				
			||||||
              );
 | 
					              );
 | 
				
			||||||
            } catch (error) {
 | 
					            } catch (error) {
 | 
				
			||||||
              console.warning("Error setting validation to false, is fine to ignore this", error);
 | 
					              console.warning(
 | 
				
			||||||
 | 
					                "Error setting validation to false, is fine to ignore this",
 | 
				
			||||||
 | 
					                error,
 | 
				
			||||||
 | 
					              );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            console.log("loadGraphData");
 | 
					            console.log("loadGraphData");
 | 
				
			||||||
            app.loadGraphData(comfyUIWorkflow);
 | 
					            app.loadGraphData(comfyUIWorkflow);
 | 
				
			||||||
@ -429,6 +457,27 @@ const ext = {
 | 
				
			|||||||
      //   }
 | 
					      //   }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (this.native_mode) {
 | 
				
			||||||
 | 
					      // console.log("native mode", window, window.app);
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        await app.ui.settings.setSettingValueAsync("Comfy.UseNewMenu", "Top");
 | 
				
			||||||
 | 
					        await app.ui.settings.setSettingValueAsync(
 | 
				
			||||||
 | 
					          "Comfy.Sidebar.Size",
 | 
				
			||||||
 | 
					          "small"
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					        await app.ui.settings.setSettingValueAsync(
 | 
				
			||||||
 | 
					          "Comfy.Sidebar.Location",
 | 
				
			||||||
 | 
					          "right"
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					        await app.ui.settings.setSettingValueAsync(
 | 
				
			||||||
 | 
					          "Comfy.MenuPosition.Docked",
 | 
				
			||||||
 | 
					          true
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					      } catch (error) {
 | 
				
			||||||
 | 
					        console.error("Error setting validation to false", error);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    app.graph.onAfterChange = ((originalFunction) =>
 | 
					    app.graph.onAfterChange = ((originalFunction) =>
 | 
				
			||||||
      async function () {
 | 
					      async function () {
 | 
				
			||||||
        const prompt = await app.graphToPrompt();
 | 
					        const prompt = await app.graphToPrompt();
 | 
				
			||||||
@ -1527,31 +1576,34 @@ async function loadWorkflowApi(versionId) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const orginal_fetch_api = api.fetchApi;
 | 
					const orginal_fetch_api = api.fetchApi;
 | 
				
			||||||
api.fetchApi = async (route, options) => {
 | 
					api.fetchApi = async (route, options) => {
 | 
				
			||||||
  console.log("Fetch API called with args:", route, options);
 | 
					  console.log("Fetch API called with args:", route, options, ext.native_mode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const info = getSelectedWorkflowInfo();
 | 
					  if (route.startsWith("/prompt") && ext.native_mode) {
 | 
				
			||||||
  if (info && route.startsWith("/prompt")) {
 | 
					    const info = await getSelectedWorkflowInfo();
 | 
				
			||||||
    const body = JSON.parse(options.body);
 | 
					    console.log("info", info);
 | 
				
			||||||
 | 
					    if (info) {
 | 
				
			||||||
 | 
					      const body = JSON.parse(options.body);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const data = {
 | 
					      const data = {
 | 
				
			||||||
      client_id: body.client_id,
 | 
					        client_id: body.client_id,
 | 
				
			||||||
      workflow_api_json: body.prompt,
 | 
					        workflow_api_json: body.prompt,
 | 
				
			||||||
      workflow: body?.extra_data?.extra_pnginfo?.workflow,
 | 
					        workflow: body?.extra_data?.extra_pnginfo?.workflow,
 | 
				
			||||||
      is_native_run: true,
 | 
					        is_native_run: true,
 | 
				
			||||||
      machine_id: info.machine_id,
 | 
					        machine_id: info.machine_id,
 | 
				
			||||||
      workflow_id: info.workflow_id,
 | 
					        workflow_id: info.workflow_id,
 | 
				
			||||||
      native_run_api_endpoint: info.native_run_api_endpoint,
 | 
					        native_run_api_endpoint: info.native_run_api_endpoint,
 | 
				
			||||||
      gpu_event_id: info.gpu_event_id,
 | 
					        gpu_event_id: info.gpu_event_id,
 | 
				
			||||||
    };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return await fetch("/comfyui-deploy/run", {
 | 
					      return await fetch("/comfyui-deploy/run", {
 | 
				
			||||||
      method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
      headers: {
 | 
					        headers: {
 | 
				
			||||||
        Authorization: `Bearer ${info.cd_token}`,
 | 
					          Authorization: `Bearer ${info.cd_token}`,
 | 
				
			||||||
        "Content-Type": "application/json",
 | 
					          "Content-Type": "application/json",
 | 
				
			||||||
      },
 | 
					        },
 | 
				
			||||||
      body: JSON.stringify(data),
 | 
					        body: JSON.stringify(data),
 | 
				
			||||||
    });
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return await orginal_fetch_api.call(api, route, options);
 | 
					  return await orginal_fetch_api.call(api, route, options);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user