Merge pull request #2 from pydn/2023-08-07_add_inference_mode
2023 08 07 add inference mode
This commit is contained in:
@@ -11,98 +11,100 @@ The `ComfyUI-to-Python-Extension` is a powerful tool that translates ComfyUI wor
|
||||
|
||||
```
|
||||
import random
|
||||
import torch
|
||||
import sys
|
||||
|
||||
sys.path.append("../")
|
||||
from nodes import (
|
||||
VAEDecode,
|
||||
KSamplerAdvanced,
|
||||
EmptyLatentImage,
|
||||
VAEDecodeTiled,
|
||||
SaveImage,
|
||||
CLIPTextEncode,
|
||||
CheckpointLoaderSimple,
|
||||
CLIPTextEncode,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
checkpointloadersimple = CheckpointLoaderSimple()
|
||||
checkpointloadersimple_4 = checkpointloadersimple.load_checkpoint(
|
||||
ckpt_name="sd_xl_base_1.0.safetensors"
|
||||
)
|
||||
|
||||
emptylatentimage = EmptyLatentImage()
|
||||
emptylatentimage_5 = emptylatentimage.generate(
|
||||
width=1024, height=1024, batch_size=1
|
||||
)
|
||||
|
||||
cliptextencode = CLIPTextEncode()
|
||||
cliptextencode_6 = cliptextencode.encode(
|
||||
text="evening sunset scenery blue sky nature, glass bottle with a galaxy in it",
|
||||
clip=checkpointloadersimple_4[1],
|
||||
)
|
||||
|
||||
cliptextencode_7 = cliptextencode.encode(
|
||||
text="text, watermark", clip=checkpointloadersimple_4[1]
|
||||
)
|
||||
|
||||
checkpointloadersimple_12 = checkpointloadersimple.load_checkpoint(
|
||||
ckpt_name="sd_xl_refiner_1.0.safetensors"
|
||||
)
|
||||
|
||||
cliptextencode_15 = cliptextencode.encode(
|
||||
text="evening sunset scenery blue sky nature, glass bottle with a galaxy in it",
|
||||
clip=checkpointloadersimple_12[1],
|
||||
)
|
||||
|
||||
cliptextencode_16 = cliptextencode.encode(
|
||||
text="text, watermark", clip=checkpointloadersimple_12[1]
|
||||
)
|
||||
|
||||
ksampleradvanced = KSamplerAdvanced()
|
||||
vaedecodetiled = VAEDecodeTiled()
|
||||
saveimage = SaveImage()
|
||||
|
||||
for q in range(10):
|
||||
ksampleradvanced_10 = ksampleradvanced.sample(
|
||||
add_noise="enable",
|
||||
noise_seed=random.randint(1, 2**64),
|
||||
steps=25,
|
||||
cfg=8,
|
||||
sampler_name="euler",
|
||||
scheduler="normal",
|
||||
start_at_step=0,
|
||||
end_at_step=20,
|
||||
return_with_leftover_noise="enable",
|
||||
model=checkpointloadersimple_4[0],
|
||||
positive=cliptextencode_6[0],
|
||||
negative=cliptextencode_7[0],
|
||||
latent_image=emptylatentimage_5[0],
|
||||
with torch.inference_mode():
|
||||
checkpointloadersimple = CheckpointLoaderSimple()
|
||||
checkpointloadersimple_4 = checkpointloadersimple.load_checkpoint(
|
||||
ckpt_name="sd_xl_base_1.0.safetensors"
|
||||
)
|
||||
|
||||
ksampleradvanced_11 = ksampleradvanced.sample(
|
||||
add_noise="disable",
|
||||
noise_seed=random.randint(1, 2**64),
|
||||
steps=25,
|
||||
cfg=8,
|
||||
sampler_name="euler",
|
||||
scheduler="normal",
|
||||
start_at_step=20,
|
||||
end_at_step=10000,
|
||||
return_with_leftover_noise="disable",
|
||||
model=checkpointloadersimple_12[0],
|
||||
positive=cliptextencode_15[0],
|
||||
negative=cliptextencode_16[0],
|
||||
latent_image=ksampleradvanced_10[0],
|
||||
emptylatentimage = EmptyLatentImage()
|
||||
emptylatentimage_5 = emptylatentimage.generate(
|
||||
width=1024, height=1024, batch_size=1
|
||||
)
|
||||
|
||||
vaedecodetiled_17 = vaedecodetiled.decode(
|
||||
samples=ksampleradvanced_11[0], vae=checkpointloadersimple_12[2]
|
||||
cliptextencode = CLIPTextEncode()
|
||||
cliptextencode_6 = cliptextencode.encode(
|
||||
text="evening sunset scenery blue sky nature, glass bottle with a galaxy in it",
|
||||
clip=checkpointloadersimple_4[1],
|
||||
)
|
||||
|
||||
saveimage_19 = saveimage.save_images(
|
||||
filename_prefix="ComfyUI", images=vaedecodetiled_17[0].detach()
|
||||
cliptextencode_7 = cliptextencode.encode(
|
||||
text="text, watermark", clip=checkpointloadersimple_4[1]
|
||||
)
|
||||
|
||||
checkpointloadersimple_12 = checkpointloadersimple.load_checkpoint(
|
||||
ckpt_name="sd_xl_refiner_1.0.safetensors"
|
||||
)
|
||||
|
||||
cliptextencode_15 = cliptextencode.encode(
|
||||
text="evening sunset scenery blue sky nature, glass bottle with a galaxy in it",
|
||||
clip=checkpointloadersimple_12[1],
|
||||
)
|
||||
|
||||
cliptextencode_16 = cliptextencode.encode(
|
||||
text="text, watermark", clip=checkpointloadersimple_12[1]
|
||||
)
|
||||
|
||||
ksampleradvanced = KSamplerAdvanced()
|
||||
vaedecode = VAEDecode()
|
||||
saveimage = SaveImage()
|
||||
|
||||
for q in range(10):
|
||||
ksampleradvanced_10 = ksampleradvanced.sample(
|
||||
add_noise="enable",
|
||||
noise_seed=random.randint(1, 2**64),
|
||||
steps=25,
|
||||
cfg=8,
|
||||
sampler_name="euler",
|
||||
scheduler="normal",
|
||||
start_at_step=0,
|
||||
end_at_step=20,
|
||||
return_with_leftover_noise="enable",
|
||||
model=checkpointloadersimple_4[0],
|
||||
positive=cliptextencode_6[0],
|
||||
negative=cliptextencode_7[0],
|
||||
latent_image=emptylatentimage_5[0],
|
||||
)
|
||||
|
||||
ksampleradvanced_11 = ksampleradvanced.sample(
|
||||
add_noise="disable",
|
||||
noise_seed=random.randint(1, 2**64),
|
||||
steps=25,
|
||||
cfg=8,
|
||||
sampler_name="euler",
|
||||
scheduler="normal",
|
||||
start_at_step=20,
|
||||
end_at_step=10000,
|
||||
return_with_leftover_noise="disable",
|
||||
model=checkpointloadersimple_12[0],
|
||||
positive=cliptextencode_15[0],
|
||||
negative=cliptextencode_16[0],
|
||||
latent_image=ksampleradvanced_10[0],
|
||||
)
|
||||
|
||||
vaedecode_17 = vaedecode.decode(
|
||||
samples=ksampleradvanced_11[0], vae=checkpointloadersimple_12[2]
|
||||
)
|
||||
|
||||
saveimage_19 = saveimage.save_images(
|
||||
filename_prefix="ComfyUI", images=vaedecode_17[0].detach()
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -197,10 +197,6 @@ def get_class_info(class_type: str) -> (str, str, str):
|
||||
import_statement (str): Import statement string
|
||||
class_code (str): Class initialization code
|
||||
"""
|
||||
# If the class is 'VAEDecode', adjust the class name
|
||||
if class_type == 'VAEDecode':
|
||||
class_type = 'VAEDecodeTiled'
|
||||
|
||||
import_statement = class_type
|
||||
class_code = f'{class_type.lower()} = {class_type}()'
|
||||
|
||||
@@ -219,13 +215,12 @@ def assemble_python_code(import_statements: set, loader_code: List[str], code: L
|
||||
Returns:
|
||||
final_code (str): Generated final code as a string
|
||||
"""
|
||||
static_imports = ['import random']
|
||||
static_imports = ['import random', 'import torch']
|
||||
imports_code = [f"from nodes import {', '.join([class_name for class_name in import_statements])}" ]
|
||||
main_function_code = f"def main():\n\t" + '\n\t'.join(loader_code) + f'\n\n\tfor q in range({queue_size}):\n\t' + '\n\t'.join(code)
|
||||
main_function_code = f"def main():\n\t" + 'with torch.inference_mode():\n\t\t' + '\n\t\t'.join(loader_code) + f'\n\n\t\tfor q in range({queue_size}):\n\t\t' + '\n\t\t'.join(code)
|
||||
final_code = '\n'.join(static_imports + ['import sys\nsys.path.append("../")'] + imports_code + ['', main_function_code, '', 'if __name__ == "__main__":', '\tmain()'])
|
||||
final_code = black.format_str(final_code, mode=black.Mode())
|
||||
|
||||
|
||||
return final_code
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user