Бесплатно используем ComfyUI на мощных серверах.
В данной статье я расскажу о том, как просто (нет) и бесплатно использовать ComfyUI на серверах baseten.
Во-первых, надо зарегистрироваться на их сайте, для удобства можно взять временную почту вот тут и не получать от них никаких рассылок на почту. Зарегистрировались? Теперь переходим вот сюда и получаем наш api-ключ. После этого переходим в truss-examples и скачиваем вот так:
Как скачали архив, то нам нужно его распаковать в любое удобное нам место. Но я сделал немного по-другому, ведь у меня на пк уже стоит git. Теперь нам нужно поставить truss и перейти в папку с его exapmles (либо откройте терминал в этой папке). Установить truss можно вот так (убедитесь что у вас стоит python):
pip install --upgrade truss
Теперь нам нужно немного подправить конфиг для нашего API ComfyUI. В config.yaml я меняю значение питона с py39 на py310:
Теперь надо зайти в папку data, в ней лежат два файла:
Нам нужно править оба файла. Открыв model.json перед нами будет вот такая картина:
Если вы используете свои ноды, то их тоже нужно объявить, вот так:
Для того чтобы использовать свои модели нам нужно их загрузить на huggingface (или другой сайт, который позволяет их скачать. civitai лучше не использовать, ведь у него обычно ограничение, которое не позволяет скачивать модели, если вы не залогинены в систему). После того, как мы изменили модели под себя нам необходимо использовать свой воркфлоу. Это можно сделать вот так:
Свой ворклоу мы перемещаем в папку data и называем comfy_ui_workflow.json (это важно)
Теперь последний этап, нам надо это все загрузить на сервера. Возращаемся вот сюда и открываем терминал в папке comfyui-truss (она в truss examples, который мы скачивали с git). В ней мы пишем вот такую команду:
truss push
У нас потребуют API ключ, мы его генерируем и вставляем правой кнопкой мыши в терминал. Теперь осталось подождать, пока наш API сервер ComfyUI будет задеплоен.
Как использовать наш ComfyUI? Необходимо создать любой .py файл и внести в него вот такой код:
import os
import random
import base64
import requests
# Set essential values
model_id = ""
baseten_api_key = ""
# Set prompts and controlnet image
values = {
"positive_prompt": "A top down view of a river through the woods",
"negative_prompt": "blurry, text, low quality",
"controlnet_image": "https://storage.googleapis.com/logos-bucket-01/baseten_logo.png",
"seed": random.randint(1, 1000000)
}
# Call model endpoint
res = requests.post(
f"https://model-{model_id}.api.baseten.co/development/predict",
headers={"Authorization": f"Api-Key {baseten_api_key}"},
json={"workflow_values": values}
)
# Get output image
res = res.json()
preamble = "data:image/png;base64,"
output = base64.b64decode(res["result"][1]["image"].replace(preamble, ""))
# Save image to file
img_file = open("comfyui.png", 'wb')
img_file.write(output)
img_file.close()
os.system("open comfyui.png")Единственное, нам надо установить библиотеки, которые могут отсутствовать, а именно:
pip install requests
Теперь вы можете спокойно использовать Baseten для своих целей.