mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-11 02:15:17 +00:00
Compare commits
4 Commits
7fb8f5bcba
...
a2d3e897c3
Author | SHA1 | Date | |
---|---|---|---|
|
a2d3e897c3 | ||
|
2307ff6746 | ||
|
1741ad55ac | ||
|
d6edc2c53c |
@ -111,7 +111,7 @@ class CLIP:
|
|||||||
model_management.load_models_gpu([self.patcher], force_full_load=True)
|
model_management.load_models_gpu([self.patcher], force_full_load=True)
|
||||||
self.layer_idx = None
|
self.layer_idx = None
|
||||||
self.use_clip_schedule = False
|
self.use_clip_schedule = False
|
||||||
logging.info("CLIP model load device: {}, offload device: {}, current: {}, dtype: {}".format(load_device, offload_device, params['device'], dtype))
|
logging.info("CLIP/text encoder model load device: {}, offload device: {}, current: {}, dtype: {}".format(load_device, offload_device, params['device'], dtype))
|
||||||
|
|
||||||
def clone(self):
|
def clone(self):
|
||||||
n = CLIP(no_init=True)
|
n = CLIP(no_init=True)
|
||||||
@ -898,7 +898,7 @@ def load_state_dict_guess_config(sd, output_vae=True, output_clip=True, output_c
|
|||||||
if output_model:
|
if output_model:
|
||||||
model_patcher = comfy.model_patcher.ModelPatcher(model, load_device=load_device, offload_device=model_management.unet_offload_device())
|
model_patcher = comfy.model_patcher.ModelPatcher(model, load_device=load_device, offload_device=model_management.unet_offload_device())
|
||||||
if inital_load_device != torch.device("cpu"):
|
if inital_load_device != torch.device("cpu"):
|
||||||
logging.info("loaded straight to GPU")
|
logging.info("loaded diffusion model directly to GPU")
|
||||||
model_management.load_models_gpu([model_patcher], force_full_load=True)
|
model_management.load_models_gpu([model_patcher], force_full_load=True)
|
||||||
|
|
||||||
return (model_patcher, clip, vae, clipvision)
|
return (model_patcher, clip, vae, clipvision)
|
||||||
|
@ -4,7 +4,8 @@ lint.ignore = ["ALL"]
|
|||||||
# Enable specific rules
|
# Enable specific rules
|
||||||
lint.select = [
|
lint.select = [
|
||||||
"S307", # suspicious-eval-usage
|
"S307", # suspicious-eval-usage
|
||||||
"T201", # print-usage
|
"S102", # exec
|
||||||
|
"T", # print-usage
|
||||||
"W",
|
"W",
|
||||||
# The "F" series in Ruff stands for "Pyflakes" rules, which catch various Python syntax errors and undefined names.
|
# The "F" series in Ruff stands for "Pyflakes" rules, which catch various Python syntax errors and undefined names.
|
||||||
# See all rules here: https://docs.astral.sh/ruff/rules/#pyflakes-f
|
# See all rules here: https://docs.astral.sh/ruff/rules/#pyflakes-f
|
||||||
|
74
server.py
74
server.py
@ -615,39 +615,12 @@ class PromptServer():
|
|||||||
@routes.post("/prompt")
|
@routes.post("/prompt")
|
||||||
async def post_prompt(request):
|
async def post_prompt(request):
|
||||||
logging.info("got prompt")
|
logging.info("got prompt")
|
||||||
json_data = await request.json()
|
result = self.put_prompt_in_queue(await request.json())
|
||||||
json_data = self.trigger_on_prompt(json_data)
|
if "error" in result:
|
||||||
|
if result.get("node_errors"):
|
||||||
if "number" in json_data:
|
logging.warning("invalid prompt: {}".format(result["error"]))
|
||||||
number = float(json_data['number'])
|
return web.json_response(result, status=400)
|
||||||
else:
|
return web.json_response(result)
|
||||||
number = self.number
|
|
||||||
if "front" in json_data:
|
|
||||||
if json_data['front']:
|
|
||||||
number = -number
|
|
||||||
|
|
||||||
self.number += 1
|
|
||||||
|
|
||||||
if "prompt" in json_data:
|
|
||||||
prompt = json_data["prompt"]
|
|
||||||
valid = execution.validate_prompt(prompt)
|
|
||||||
extra_data = {}
|
|
||||||
if "extra_data" in json_data:
|
|
||||||
extra_data = json_data["extra_data"]
|
|
||||||
|
|
||||||
if "client_id" in json_data:
|
|
||||||
extra_data["client_id"] = json_data["client_id"]
|
|
||||||
if valid[0]:
|
|
||||||
prompt_id = str(uuid.uuid4())
|
|
||||||
outputs_to_execute = valid[2]
|
|
||||||
self.prompt_queue.put((number, prompt_id, prompt, extra_data, outputs_to_execute))
|
|
||||||
response = {"prompt_id": prompt_id, "number": number, "node_errors": valid[3]}
|
|
||||||
return web.json_response(response)
|
|
||||||
else:
|
|
||||||
logging.warning("invalid prompt: {}".format(valid[1]))
|
|
||||||
return web.json_response({"error": valid[1], "node_errors": valid[3]}, status=400)
|
|
||||||
else:
|
|
||||||
return web.json_response({"error": "no prompt", "node_errors": []}, status=400)
|
|
||||||
|
|
||||||
@routes.post("/queue")
|
@routes.post("/queue")
|
||||||
async def post_queue(request):
|
async def post_queue(request):
|
||||||
@ -692,6 +665,41 @@ class PromptServer():
|
|||||||
|
|
||||||
return web.Response(status=200)
|
return web.Response(status=200)
|
||||||
|
|
||||||
|
def put_prompt_in_queue(self, json_data):
|
||||||
|
json_data = self.trigger_on_prompt(json_data)
|
||||||
|
|
||||||
|
if "number" in json_data:
|
||||||
|
number = float(json_data['number'])
|
||||||
|
else:
|
||||||
|
number = self.number
|
||||||
|
if "front" in json_data:
|
||||||
|
if json_data['front']:
|
||||||
|
number = -number
|
||||||
|
|
||||||
|
self.number += 1
|
||||||
|
|
||||||
|
if "prompt" in json_data:
|
||||||
|
prompt = json_data["prompt"]
|
||||||
|
valid = execution.validate_prompt(prompt)
|
||||||
|
extra_data = {}
|
||||||
|
if "extra_data" in json_data:
|
||||||
|
extra_data = json_data["extra_data"]
|
||||||
|
|
||||||
|
if "client_id" in json_data:
|
||||||
|
extra_data["client_id"] = json_data["client_id"]
|
||||||
|
if valid[0]:
|
||||||
|
if "prompt_id" in json_data:
|
||||||
|
prompt_id = json_data["prompt_id"]
|
||||||
|
else:
|
||||||
|
prompt_id = str(uuid.uuid4())
|
||||||
|
outputs_to_execute = valid[2]
|
||||||
|
self.prompt_queue.put((number, prompt_id, prompt, extra_data, outputs_to_execute))
|
||||||
|
return {"prompt_id": prompt_id, "number": number, "node_errors": valid[3]}
|
||||||
|
else:
|
||||||
|
return {"error": valid[1], "node_errors": valid[3]}
|
||||||
|
else:
|
||||||
|
return {"error": "no prompt", "node_errors": []}
|
||||||
|
|
||||||
async def setup(self):
|
async def setup(self):
|
||||||
timeout = aiohttp.ClientTimeout(total=None) # no timeout
|
timeout = aiohttp.ClientTimeout(total=None) # no timeout
|
||||||
self.client_session = aiohttp.ClientSession(timeout=timeout)
|
self.client_session = aiohttp.ClientSession(timeout=timeout)
|
||||||
|
Loading…
Reference in New Issue
Block a user