Spaces:
Runtime error
Runtime error
File size: 4,425 Bytes
2de3774 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
import modules.async_worker as worker
from PIL import Image
import shared
from comfy.samplers import KSampler
# Copy this file, add suitable code and add logic to modules/pipelines.py to select it
class pipeline:
pipeline_type = ["hashbang"]
model_hash = ""
def parse_gen_data(self, gen_data):
gen_data["original_image_number"] = gen_data["image_number"]
gen_data["image_number"] = 1
gen_data["show_preview"] = False
return gen_data
def load_base_model(self, name):
# We don't need a model
self.model_hash = name
return
def load_keywords(self, lora):
return ""
def load_loras(self, loras):
return
def refresh_controlnet(self, name=None):
return
def clean_prompt_cond_caches(self):
return
def process(
self,
gen_data=None,
callback=None,
):
worker.add_result(
gen_data["task_id"],
"preview",
(-1, f"Working ...", "html/generate_video.jpeg")
)
image = Image.open("html/logo.png")
# Get command
lines = gen_data["prompt"].splitlines()
cmd = lines[0][2:].strip()
data = "\n".join(lines[1:])
match cmd:
case "echo":
# Simple test
print(data)
case "help":
print("TODO...")
case "add performance":
new_perf = shared.performance_settings.default_settings
new_perf['name'] = "Oops! Forgot to add a name." # Have a default name
for line in lines[1:]:
kv = line.split(":")
if len(kv) < 2:
image = Image.open("html/error.png")
print(f"ERROR: Can't find key and value on line: {line}")
break
k = kv[0].lower()
# Some helpful translations
if k in ['steps']:
k = 'custom_steps'
if k in ['sampler']:
k = 'sampler_name'
if k in ['clip-skip', 'clip skip', 'clipskip']:
k = 'clip_skip'
if k in ['custom_steps', 'clip_skip']: # Handle ints
v = int(kv[1])
elif k in ['cfg']: # Handle floats
v = float(kv[1])
elif k in ['sampler_name', 'scheduler', 'name']: # Handle strings
v = kv[1].strip()
if (k == 'sampler_name' and v not in KSampler.SAMPLERS):
image = Image.open("html/error.png")
print(f"ERROR: Unknown sampler: {v}")
print(f"Known Samplers: {KSampler.SAMPLERS}")
break
if (k == 'scheduler' and v not in KSampler.SCHEDULERS):
image = Image.open("html/error.png")
print(f"ERROR: Unknown scheduler: {v}")
print(f"Known Schedulers: {KSampler.SCHEDULERS}")
break
else:
image = Image.open("html/error.png")
print(f"ERROR: Unknown key: {k}")
break
new_perf[k] = v
perf_options = shared.performance_settings.load_performance()
opts = {
"custom_steps": new_perf['custom_steps'],
"cfg": new_perf['cfg'],
"sampler_name": new_perf['sampler_name'],
"scheduler": new_perf['scheduler'],
"clip_skip": new_perf['clip_skip'],
}
perf_options[new_perf['name']] = opts
shared.performance_settings.save_performance(perf_options)
print(f"#!: Saved performance: {new_perf['name']}: {opts}")
shared.update_cfg()
case _:
print(f"ERROR: Unknown command #!{cmd}")
image = Image.open("html/error.png")
# Return finished image to preview
if callback is not None:
callback(gen_data["steps"], 0, 0, gen_data["steps"], image)
return []
|