A package to use the ComfyAPI
Project description
TechTrash ComfyAPI
TechTrash ComfyAPI est une petite librairie Python qui permet de piloter facilement plusieurs instances ComfyUI en parallèle, en utilisant automatiquement toutes les GPU disponibles, et en gérant les modèles / LoRAs et la récupération des images générées.
Installation
-
Prérequis :
- Python 3.11+
pynvmlinstallé sur la machine avec les GPU- Accès à un stockage S3 compatible OVH (endpoint, bucket, clés, etc.)
- ComfyUI installé sur la machine, avec une instance par GPU si possible
-
Depuis
pip(wheel déjà générée) :
pip install techtrash-comfyapi
ou directement depuis le projet :
pip install .
Idée générale
- Détection GPU :
ComfyAPIdétecte le nombre et le type de GPU viapynvml. - Lancement des instances ComfyUI : pour chaque GPU, la classe lance un process ComfyUI sur un port dédié (
subprocess.Popen(...)). - Gestion des modèles / LoRAs :
- vérifie que les modèles demandés existent dans
models_path, - télécharge les LoRAs manquants depuis une URL vers
models_path/loras.
- vérifie que les modèles demandés existent dans
- Répartition des réglages :
- certains paramètres sont divisés par le nombre de GPU (ex:
batch_size), - d’autres restent fixes par GPU (ex:
steps).
- certains paramètres sont divisés par le nombre de GPU (ex:
- Exécution du workflow :
- envoie le workflow JSON à chaque instance ComfyUI,
- attend la fin du traitement,
- retourne la liste complète des chemins des images générées.
Utilisation rapide
Exemple minimal pour lancer un workflow (pseudo-code simplifié) :
import asyncio
from comfyapi.main import ComfyAPI
api = ComfyAPI(
api_key="TON_API_KEY",
s3_endpoint="https://s3.gra.io.cloud.ovh.net",
s3_bucket="ton-bucket",
s3_region="gra",
s3_key_id="TON_KEY_ID",
s3_secret="TON_SECRET",
absolute_paths_comfyui=[
"/chemin/vers/comfyui/gpu0",
"/chemin/vers/comfyui/gpu1",
],
models_path="/chemin/vers/models",
ports=[3050, 3051],
)
workflow_json = {...} # workflow ComfyUI complet
models = [
{"type": "checkpoints", "name": "model.safetensors"},
]
loras = [
{"name": "lora.safetensors", "url": "https://.../lora.safetensors"},
]
settings_scaled_by_gpu_count = [
{"title": "KSampler", "value": 8}, # ex : batch_size
]
settings_fixed_per_gpu = [
{"title": "KSampler", "value": 20}, # ex : steps
]
async def main():
images = await api.execute_workflow_TtI(
workflow_json=workflow_json,
models=models,
loras=loras,
settings_scaled_by_gpu_count=settings_scaled_by_gpu_count,
settings_fixed_per_gpu=settings_fixed_per_gpu,
)
print("Images générées :", images)
asyncio.run(main())
Paramètres principaux
-
ComfyAPI:api_key: clé API pour sécuriser l’accès (si utilisée par tes instances).s3_*: paramètres S3 OVH (endpoint, bucket, région, clés).absolute_paths_comfyui: liste des chemins vers chaque installation ComfyUI.models_path: chemin racine où sont stockés les modèles et LoRAs.ports: ports HTTP de chaque instance ComfyUI.
-
execute_workflow_TtI(...):workflow_json: workflow ComfyUI complet.models: liste de modèles à vérifier dansmodels_path.loras: LoRAs à télécharger / vérifier.settings_scaled_by_gpu_count: paramètres divisés par le nombre de GPU.settings_fixed_per_gpu: paramètres identiques sur chaque GPU.
Comment tester rapidement
- 1. Vérifier l’installation :
python -c "import comfyapi; print('Ok')"
- 2. Lancer un petit script avec un workflow simple (même machine que ComfyUI).
- 3. Surveiller les logs : tu verras l’initialisation des GPU, le lancement des instances ComfyUI et la liste des images générées.
Ce README reste volontairement bref : il donne une vue d’ensemble de la librairie, comment l’installer, l’utiliser rapidement, et quels sont les paramètres importants. Tu peux me demander une version plus détaillée ou orientée prod si besoin.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file techtrash_comfyapi-0.3.2.tar.gz.
File metadata
- Download URL: techtrash_comfyapi-0.3.2.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af75b676850cbadf5259c6dcb279a1fdc076e0b343ea0a807b8be79c66efbfc5
|
|
| MD5 |
a5566ca5aed6fb3adb2e614747b6a6ab
|
|
| BLAKE2b-256 |
5da8b1cd8961ef35b00456dfeb4ef0ffd568f199b69187193f2465b7063d9b50
|
File details
Details for the file techtrash_comfyapi-0.3.2-py3-none-any.whl.
File metadata
- Download URL: techtrash_comfyapi-0.3.2-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8a924462624504629a6bac8c14fa381b0628e9fe21238e7d1d4eb0d7f44d904
|
|
| MD5 |
ef259b64080113a834ad1a7b42c1f19c
|
|
| BLAKE2b-256 |
6c864675a7d296d64801a6ae622e0b47d092ac7824811397ea90b0604f4f229f
|