Гайды по нейронкам
May 28, 2024

Бесплатно используем ComfyUI на мощных серверах.

В данной статье я расскажу о том, как просто (нет) и бесплатно использовать ComfyUI на серверах baseten.

Во-первых, надо зарегистрироваться на их сайте, для удобства можно взять временную почту вот тут и не получать от них никаких рассылок на почту. Зарегистрировались? Теперь переходим вот сюда и получаем наш api-ключ. После этого переходим в truss-examples и скачиваем вот так:

Ага, так просто

Как скачали архив, то нам нужно его распаковать в любое удобное нам место. Но я сделал немного по-другому, ведь у меня на пк уже стоит git. Теперь нам нужно поставить truss и перейти в папку с его exapmles (либо откройте терминал в этой папке). Установить truss можно вот так (убедитесь что у вас стоит python):

pip install --upgrade truss

Теперь нам нужно немного подправить конфиг для нашего API ComfyUI. В config.yaml я меняю значение питона с py39 на py310:

Вот так

Теперь надо зайти в папку data, в ней лежат два файла:

Открываем model.json

Нам нужно править оба файла. Открыв model.json перед нами будет вот такая картина:

Вот тут

Если вы используете свои ноды, то их тоже нужно объявить, вот так:

Вот так просто

Для того чтобы использовать свои модели нам нужно их загрузить на huggingface (или другой сайт, который позволяет их скачать. civitai лучше не использовать, ведь у него обычно ограничение, которое не позволяет скачивать модели, если вы не залогинены в систему). После того, как мы изменили модели под себя нам необходимо использовать свой воркфлоу. Это можно сделать вот так:

Нажимаем вот сюда
Включаем опции разработчика
Теперь мы можем сохранить свой воркфлоу в API формате.

Свой ворклоу мы перемещаем в папку 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 для своих целей.