
ComfyUI-to-Python-Extension -это мощный инструмент, который переводит Comfyui Workflows в исполняемый код Python. Этот сценарий, предназначенный для преодоления разрыва между визуальным интерфейсом Comfyui и средой программирования Python, облегчает бесшовный переход от проектирования к выполнению кода. Независимо от того, являетесь ли вы ученым для данных, разработчиком программного обеспечения или энтузиастом искусственного интеллекта, этот инструмент оптимизирует процесс реализации Comfyui Workflows в Python.
Преобразовать это:

К этому:
import random
import torch
import sys
sys.path.append("../")
from nodes import (
VAEDecode,
KSamplerAdvanced,
EmptyLatentImage,
SaveImage,
CheckpointLoaderSimple,
CLIPTextEncode,
)
def main():
with torch.inference_mode():
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()
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]
)
if __name__ == "__main__":
main()

comfyui_to_python.py с аргументами CLIComfyUI Перейдите в свой каталог ComfyUI/custom_nodes
Клонировать это репо
git clone https://github.com/pydn/ComfyUI-to-Python-Extension.git После клонирования репо, ваш каталог ComfyUI должен выглядеть так:
/comfy
/comfy_extras
/custom_nodes
--/ComfyUI-to-Python-Extension
/input
/models
/output
/script_examples
/web
.gitignore
LICENSE
README.md
comfyui_screenshot.png
cuda_mollac.py
execution.py
extra_model_paths.yaml.example
folder_paths.py
latent_preview.py
main.py
nodes.py
requirements.txt
server.py
Запустить comfyui
Загрузите свой любимый рабочий процесс и нажмите Save As Script

Введите желаемое имя файла в всплывающий экране.
Переместите ComfyUI
Теперь вы можете выполнить недавно созданный файл .py для генерации изображений без запуска сервера.
Перейдите в папку ComfyUI-to-Python-Extension и установите требования
pip install -r requirements.txt Запустите Comfyui, нажмите на значок Gear Over Queue Prompt , затем проверьте Enable Dev mode Options . Сценарий не будет работать, если вы не включите эту опцию!

Загрузите свои любимые рабочие процессы, затем нажмите вновь включенную кнопку Save (API Format) в ходе очереди
Переместите загруженный файл рабочего процесса ComfyUI/ComfyUI-to-Python-Extension
При необходимости добавьте аргументы при выполнении comfyui_to_python.py , чтобы обновить по умолчанию input_file и output_file , чтобы соответствовать вашему файлу рабочего процесса .json и желаемого имени файла .py. По умолчанию скрипт будет искать файл с именем workflow_api.json . Вы также можете обновить переменную queue_size на желаемое количество изображений, которые вы хотите генерировать при выполнении одного скрипта. По умолчанию сценарии будут генерировать 10 изображений. Запустите python comfyui_to_python.py --help для получения более подробной информации.
6A. Запустите скрипт с аргументами по умолчанию:
python comfyui_to_python.py6B. Запустите скрипт с дополнительными аргументами:
python comfyui_to_python.py --input_file " workflow_api (2).json " --output_file my_workflow.py --queue_size 100 После запуска comfyui_to_python.py в текущем рабочем каталоге будет создан новый файл .py. Если вы не внесли никаких изменений, ищите workflow_api.py .
Теперь вы можете выполнить недавно созданный файл .py для генерации изображений без запуска сервера.