برای تولید تصویر با اجاره GPU ساعتی سرورنت، ابتدا کارت و برنامه ComfyUI را انتخاب کنید. بسته فعلی مسیر API و مستندات وب دارد؛ باز شدن ویرایشگر گرافی ComfyUI، نصب همه افزونهها و مدلهای ویدئویی را از نام برنامه نتیجه نگیرید.
پیشنیاز و انتخاب منابع
نام مدل، ابعاد تصویر، تعداد خروجی همزمان و VRAM موردنیاز آن را مشخص کنید. VRAM با RAM سیستم متفاوت است. فقط کارت و برنامهای که در پیکربند قابل انتخاباند قابل سفارش هستند؛ نرخ و اعتبار لازم همانجا نمایش داده میشوند. اعتبار شروع به معنی مصرف اجباری ۲۴ ساعت نیست.
۱. سرویس را بسازید و آمادهشدن برنامه را بررسی کنید
- در صفحه GPU، کارت مناسب و ComfyUI را انتخاب و درخواست را ثبت کنید.
- در کنسول، وضعیت تخصیص، دانلود و آمادهشدن برنامه را دنبال کنید. انتظار ظرفیت با آمادهبودن برنامه یکسان نیست.
- پس از تحویل، نشانی دسترسی و توکن همان سرویس را از صفحه سرویس بردارید. این محصول رمز root یا SSH یک VPS را ارائه نمیکند.
- مستندات برنامه را از دکمه مربوط در پنل باز کنید. مسیر workflow و شکل پاسخ نسخه تحویلشده را بررسی کنید.
۲. یک تصویر آزمایشی درخواست کنید
روی سیستم خود Python و کتابخانه requests را آماده کنید. نشانی HTTPS و توکن را در متغیرهای محیطی SNET_GPU_URL و SNET_GPU_TOKEN قرار دهید؛ توکن را در کد، مخزن یا تصویر صفحه منتشر نکنید. مثال زیر از مسیر پیشفرضی استفاده میکند که در پنل معرفی شده است. مهلت ۳۰۰ ثانیه تنظیم کلاینت است و زمان اجرای تضمینی نیست.
import os, json, base64
from pathlib import Path
import requests
base = os.environ["SNET_GPU_URL"].rstrip("/")
headers = {"X-SN-Token": os.environ["SNET_GPU_TOKEN"]}
r = requests.post(base + "/workflow/sd1.5/txt2img",
headers=headers,
json={"input": {"prompt": "a red apple on a wooden table"}},
timeout=300)
r.raise_for_status()
result = r.json()
Path("response.json").write_text(json.dumps(result), encoding="utf-8")
# For the synchronous base64 images response described by this app:
for i, image in enumerate(result.get("images", [])):
if not isinstance(image, str) or image.startswith(("http://", "https://")):
raise ValueError("Use the response format documented by this instance")
payload = image.split(",", 1)[-1] if image.startswith("data:") else image
Path(f"output-{i + 1}.png").write_bytes(base64.b64decode(payload, validate=True))
if not result.get("images"):
raise ValueError("No images returned; inspect response.json and the instance docs")۳. خروجی را دریافت و نگهداری کنید
در پاسخ همزمان شامل آرایه images با داده Base64، مثال خروجیها را در پوشه اجرای اسکریپت ذخیره میکند. اگر مستندات سرویس پاسخ دیگری مانند نشانی دانلود یا شناسه کار نشان میدهند، روش همان نسخه را دنبال کنید؛ پاسخ خالی را موفقیت در نظر نگیرید. فایل تصویر را باز کنید و response.json را خصوصی نگه دارید. نام فایل نمونه PNG است؛ اگر فرمت خروجی را در API تغییر دادید، پسوند را هم هماهنگ کنید.
خطاهای رایج
- ۴۰۱ یا ۴۰۳: نشانی و توکن همان سرویس و هدر X-SN-Token را بررسی کنید؛ توکن سرویس دیگر قابل جایگزینی نیست.
- ۴۰۴: باز کردن یک مسیر POST در نوار آدرس، اجرای API نیست. مسیر معرفیشده در پنل و مستندات نسخه را بررسی کنید.
- ۵۰۳ یا timeout: وضعیت واقعی برنامه را در پنل ببینید. timeout بهتنهایی به معنی اجرا نشدن کار نیست؛ پیش از ارسال دوباره، نتیجه و وضعیت کار را بررسی کنید.
- کمبود VRAM: اندازه یا تعداد خروجی همزمان را کاهش دهید یا کارت مناسبتری انتخاب کنید. صرفاً افزایش RAM سیستم مشکل VRAM را رفع نمیکند.
پیش از پایان استفاده
محیط میتواند قطع یا دوباره ساخته شود و دیسک محلی موقت است. خروجی و تنظیمات مهم را روی سیستم خود یا فضای خارجی ذخیره و بازشدن فایل را بررسی کنید. بستن مرورگر سرویس را متوقف نمیکند؛ عملیات توقف یا لغو را از پنل انجام دهید و وضعیت نهایی را ببینید. برای کدنویسی و checkpointهای پایتون، راهنمای Jupyter روی GPU ساعتی را بخوانید.
این راهنما با قرارداد فعلی پنل هماهنگ شده است؛ زمان تولید، هزینه یک تصویر و نتیجه اجرای واقعی این مثال در محیط GPU اندازهگیری نشدهاند.
دیدگاهها ۰
هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!