All Products
Search
Document Center

Platform For AI:Seni AI - Penyebaran SDWebUI

Last Updated:Feb 28, 2026

Stable Diffusion (SD) adalah model generasi gambar yang andal, menghasilkan gambar berkualitas tinggi dan beresolusi tinggi dengan stabilitas serta kontrol yang kuat. Proyek Stable Diffusion WebUI sumber terbuka membungkus model ini dalam antarmuka visual berbasis Gradio, menyediakan berbagai alat canggih untuk generasi gambar. Elastic Algorithm Service (EAS) memungkinkan penyebaran berbasis skenario—cukup konfigurasikan beberapa parameter untuk menyebarkan layanan Stable Diffusion WebUI hanya dengan satu klik.

Fitur dan Manfaat

PAI-EAS menawarkan keunggulan berikut dibandingkan layanan yang dibangun sendiri:

  • Penyebaran satu klik: Gambar yang telah dikonfigurasi sebelumnya mencakup semua dependensi.

  • Auto Scaling GPU: Sesuaikan sumber daya GPU secara dinamis sesuai kebutuhan.

  • Fitur tingkat enterprise: Isolasi multi-pengguna, berbagi GPU, dan alokasi biaya.

  • Manajemen file terintegrasi: Ekstensi FileBrowser menyederhanakan unggah model.

Pilih Edisi

Edisi

Skema Penggunaan

Metode Pemanggilan

Penagihan

Edisi Standar

Pengujian pribadi, pengembangan prototipe

WebUI, pemanggilan API (sinkron)

Penagihan didasarkan pada konfigurasi penyebaran. Untuk detailnya, lihat Ikhtisar Penagihan EAS.

Edisi API

Lingkungan produksi API, skenario konkurensi tinggi

Pemanggilan API (sinkron & asinkron)

Clustered WebUI

Kolaborasi tim, tim desain

WebUI

Edisi Serverless

Catatan

Hanya didukung di wilayah Tiongkok (Shanghai) dan Tiongkok (Hangzhou).

Beban elastis, optimalisasi biaya

WebUI

Penyebaran layanan gratis. Penagihan hanya berdasarkan durasi generasi gambar.

Memulai Cepat: Menyebarkan Seni AI Menggunakan Metode Berbasis Skenario

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Pada halaman Elastic Algorithm Service (EAS), klik Deploy Service. Di area Scenario-based Model Deployment, klik AI Painting - SD Web UI Deployment.

  3. Konfigurasikan parameter utama berikut:

    • Version: Pilih Edisi Standar.

    • Model Settings: Menyimpan file model dan gambar hasil inferensi. Pilih OSS dan pilih path bucket.

    • Instance Type: Pilih tipe GPU. Tipe instans yang direkomendasikan adalah ml.gu7i.c16m60.1-gu30 (rasio harga-kualitas tertinggi).

  4. Setelah mengonfigurasi parameter, klik Deploy. Tunggu 5–10 menit hingga status layanan berubah menjadi Running.

Memanggil Layanan

Memanggil Menggunakan WebUI

Anda dapat memanggil layanan Edisi Standar, WebUI Terkluster, dan Edisi Serverless melalui WebUI sebagai berikut:

  1. Verifikasi inferensi model.

    Pada halaman Stable Diffusion WebUI, di tab Text-to-Image, masukkan prompt positif, seperti cute dog. Lalu, klik Generate untuk menyelesaikan generasi seni AI. Hasilnya sebagai berikut:

    image

Memanggil Menggunakan API Sinkron

Setelah menyebarkan layanan Edisi Standar dan Edisi API, Anda dapat mengirim permintaan API sinkron sebagai berikut.

Informasi Pemanggilan Kueri

  1. Setelah layanan disebarkan, klik nama layanan untuk membuka halaman Overview.

  2. Di area Basic Information, klik View Endpoint Information.

  3. Pada halaman Invocation Information, peroleh endpoint layanan publik dan Token.

Contoh Pemanggilan

Simpan gambar secara lokal

import requests
import base64
from PIL import Image
import io

# Catatan !!!!: Hapus trailing / dari URL layanan.
SERVICE_URL = "<service_url>"
TOKEN = "<Token>"

def generate_image(prompt: str) -> Image.Image:
    """Menghasilkan gambar dari teks prompt."""
    payload = {
        "prompt": prompt,
        "negative_prompt": "blurry, low quality, deformed",
        "steps": 25,
        "width": 512,
        "height": 512,
        "cfg_scale": 7.5,
    }
    
    response = requests.post(
        f"{SERVICE_URL}/sdapi/v1/txt2img",
        json=payload,
        headers={"Authorization": TOKEN}
    )
    response.raise_for_status()
    
    # Decode gambar pertama
    img_data = response.json()["images"][0]
    return Image.open(io.BytesIO(base64.b64decode(img_data)))

# Hasilkan dan simpan
image = generate_image("a serene mountain landscape at sunset")
image.save("output.png")

Simpan gambar ke OSS

import requests

# Catatan !!!!: Hapus trailing / dari URL layanan.
SERVICE_URL = "<service_url>"
TOKEN = "<Token>"

payload = {
    "prompt": "professional portrait photography",
    "steps": 30,
    "alwayson_scripts": {
        "sd_model_checkpoint": "v1-5-pruned-emaonly.safetensors",
        "save_dir": "/code/stable-diffusion-webui/data/outputs"
    }
}

response = requests.post(
    f"{SERVICE_URL}/sdapi/v1/txt2img",
    json=payload,
    headers={"Authorization": TOKEN}
)

# Dapatkan path gambar yang disimpan
data = response.json()

# Ini sesuai dengan mount_path folder OSS yang dipasang saat menyebarkan sebagai Layanan EAS.
mount_path = "/code/stable-diffusion-webui/data"

# Ini sesuai dengan URL bucket OSS yang dipilih saat menyebarkan sebagai Layanan EAS.
oss_url = "oss://examplebucket/data-oss"

for idx, img_path in enumerate(data['parameters']['image_url'].split(',')):
    # Dapatkan path OSS aktual dari gambar yang dihasilkan.
    img_oss_path = img_path.replace(mount_path, oss_url)
    print(img_oss_path)

Selain itu, gunakan format data LoRA dan ControlNet dalam data permintaan untuk mencapai fitur tertentu.

Konfigurasi Model LoRA dalam Data Permintaan

Saat mengirim permintaan layanan, tambahkan langsung <lora:yaeMikoRealistic_Genshin:1000> ke badan permintaan untuk menyertakan LoRA. Untuk informasi lebih lanjut, lihat LoRA.

Contoh konfigurasi badan permintaan sebagai berikut:

{
  "prompt":"girls <lora:yaeMikoRealistic_Genshin:1>",
  "steps":20,
  "save_images":true
}

Gunakan Format Data ControlNet dalam Data Permintaan

Menggunakan format data ControlNet dalam data permintaan API menyederhanakan transformasi gambar umum, seperti mempertahankan orientasi horizontal atau vertikal. Untuk metode konfigurasi spesifik, lihat txt2img menggunakan format data ControlNet.

Memanggil Menggunakan API Asinkron

Setelah menyebarkan layanan Edisi API, Anda dapat mengirim permintaan API asinkron ke layanan tersebut. Klien tidak menunggu hasil secara sinkron, melainkan berlangganan dan menunggu server mendorong hasil setelah komputasi permintaan selesai. Lakukan langkah-langkah berikut:

Informasi Pemanggilan Kueri

  1. Setelah layanan disebarkan, klik nama layanan untuk membuka halaman Overview.

  2. Di area Basic Information, klik View Endpoint Information.

  3. Pada halaman Invocation Information, beralih ke tab Asynchronous Invocation untuk memperoleh endpoint input jaringan publik dan Token.

Mengirim Permintaan

Klien mengirim permintaan ke server melalui API asinkron.

import requests


SERVICE_URL = "<Public service URL>"
TOKEN = "<Token>"

response = requests.post(
    f"{SERVICE_URL}/sdapi/v1/txt2img?task_id=job_001",
    json={
        "prompt": "futuristic city skyline",
        "steps": 30,
        "alwayson_scripts": {
            "save_dir": "/code/stable-diffusion-webui/data/outputs"
        }
    },
    headers={"Authorization": TOKEN}
)
print(f"Job enqueued: {response.json()}")
Penting
  • Antrian asinkron memiliki batas ukuran untuk permintaan input dan hasil output, biasanya tidak melebihi 8 KB. Oleh karena itu, saat mengirim permintaan, penuhi dua kondisi berikut:

    • Jika data permintaan mencakup gambar, gunakan URL untuk mengirimkan informasi gambar. Stable Diffusion WebUI secara otomatis mengunduh dan mengurai data gambar ini secara internal.

    • Untuk memastikan hasil yang dikembalikan tidak berisi data gambar asli, gunakan save_dir untuk menentukan path penyimpanan gambar yang dihasilkan. Untuk detailnya, lihat Parameter tambahan yang didukung oleh operasi API.

Hasil Langganan

Klien menggunakan metode berlangganan. Setelah server selesai memproses permintaan, server secara otomatis mendorong hasil ke klien, memungkinkan komunikasi asinkron yang efisien.

from eas_prediction import QueueClient

# Sesuaikan format URL layanan dengan contoh: 112231234124214.cn-hangzhou.pai-eas.aliyuncs.com
SERVICE_URL = "<service_url>"
TOKEN = "<Token>"
# Nama layanan yang dikonfigurasi saat pembuatan layanan.
SERVICE_NAME = "<service_name>"

sink = QueueClient(SERVICE_URL, SERVICE_NAME + '/sink')
sink.set_token(TOKEN)
sink.init()

for result in sink.watch(0, 5, auto_commit=True).run():
    print(f"Tugas {result.tags.get('task_id')} selesai")
    print(f"URL Gambar: {result.data}")

EAS mendukung fitur baru berdasarkan API native Stable Diffusion WebUI. Tambahkan parameter opsional ke data permintaan untuk fungsionalitas yang lebih kaya atau kebutuhan khusus. Untuk detailnya, lihat Parameter tambahan yang didukung oleh operasi API.

Opsi Penyebaran Lanjutan

Penyebaran Kustom

Sebarkan layanan Edisi Standar, Edisi API, dan WebUI Terkluster sebagai berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.

  3. Pada halaman Custom Deployment, konfigurasikan parameter utama berikut.

    Parameter

    Deskripsi

    Environment Information

    Deployment Method

    • Saat menyebarkan layanan Edisi Standar dan WebUI Terkluster, pilih Image-based Deployment dan aktifkan Enable Web App.

    • Saat menyebarkan layanan Edisi API, pilih Image-based Deployment dan aktifkan Asynchronous Services.

    Image Configuration

    Dalam daftar Alibaba Cloud Image, pilih stable-diffusion-webui. Pilih versi gambar tertinggi. Ini mencakup:

    • x.x-standard: Menunjukkan Edisi Standar.

    • x.x-api: Menunjukkan Edisi API.

    • x.x-cluster-webui: Menunjukkan WebUI Terkluster.

    Catatan
    • Karena versi berkembang pesat, pilih versi gambar tertinggi saat penyebaran.

    • Jika beberapa pengguna perlu menghasilkan gambar secara bersamaan menggunakan satu Stable Diffusion WebUI, pilih versi x.x-cluster-webui.

    • Untuk informasi lebih lanjut tentang skenario penggunaan setiap versi, lihat Pilih Edisi.

    Storage Mount

    Menyimpan file model dan gambar hasil inferensi.

    Penting

    Edisi API dan WebUI Terkluster harus mengonfigurasi pemasangan storage.

    Tipe berikut didukung:

    • OSS

      • Uri: Konfigurasikan path OSS ke path bucket OSS yang sudah ada.

      • Mount Path: Konfigurasikan sebagai /code/stable-diffusion-webui/data.

    • NAS

      • File System: Pilih sistem file NAS yang sudah ada.

      • Mount Target: Pilih titik pemasangan yang sudah ada.

      • File System Path: Konfigurasikan sebagai /.

      • Mount Path: Konfigurasikan sebagai /code/stable-diffusion-webui/data.

    • PAI Model

      • PAI Model: Pilih model PAI dan versi model.

      • Mount Path: Konfigurasikan sebagai /code/stable-diffusion-webui/data.

    Topik ini menggunakan contoh pemasangan OSS.

    Command to Run

    Setelah menyelesaikan konfigurasi di atas, sistem secara otomatis menghasilkan perintah run yang sesuai.

    • Setelah melakukan pemasangan storage, tambahkan parameter --data-dir ke perintah run untuk memasang data ke path yang ditentukan pada instans layanan. Path harus konsisten dengan path pemasangan, seperti --data-dir /code/stable-diffusion-webui/data.

    • (Opsional) Tambahkan parameter --blade atau --xformers ke perintah run untuk mengaktifkan akselerasi inferensi dan meningkatkan kecepatan generasi gambar. Untuk instruksi konfigurasi parameter lebih lanjut, lihat Parameter yang didukung selama startup layanan.

    Resource Information

    Deployment

    Pilih tipe GPU. Resource Type yang direkomendasikan adalah ml.gu7i.c16m60.1-gu30 (rasio harga-kualitas tertinggi).

    Service Access

    VPC

    Saat Storage Mount diatur ke NAS, sistem secara otomatis mencocokkan VPC yang terhubung ke NAS. Tidak diperlukan modifikasi tambahan.

    vSwitch

    Security Group Name

  4. Setelah mengonfigurasi parameter, klik Deploy.

Penyebaran Mandiri JSON

Gunakan penyebaran mandiri JSON untuk menyebarkan layanan Stable Diffusion WebUI. Contoh berikut menggunakan Edisi Standar dan Edisi API. Lakukan langkah-langkah berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Pada halaman Elastic Algorithm Service (EAS), klik Deploy Service. Di area Custom Model Deployment, klik JSON Deployment.

  3. Pada editor di halaman JSON Deployment, konfigurasikan konten JSON berikut.

    Menyebarkan Layanan Edisi Standar

    {
        "metadata": {
            "instance": 1,
            "name": "sd_v32",
            "enable_webservice": true
        },
        "containers": [
            {
                "image": "eas-registry-vpc.<region>.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:4.2",
                "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api --filebrowser --data-dir=/code/stable-diffusion-webui/data",
                "port": 8000
            }
        ],
        "cloud": {
            "computing": {
                "instance_type": "ml.gu7i.c16m60.1-gu30",
                "instances": null
            },
            "networking": {
                "vpc_id": "vpc-t4nmd6nebhlwwexk2****",
                "vswitch_id": "vsw-t4nfue2s10q2i0ae3****",
                "security_group_id": "sg-t4n85ksesuiq3wez****"
            }
        },
        "storage": [
            {
                "oss": {
                    "path": "oss://examplebucket/data-oss",
                    "readOnly": false
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            },
            {
                "nfs": {
                    "path": "/",
                    "server": "726434****-aws0.ap-southeast-1.nas.aliyuncs.com"
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            }
        ]
    } 

    Deskripsi parameter utama sebagai berikut:

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama layanan model kustom, unik dalam wilayah tersebut.

    containers.image

    Ya

    Ganti <region> dengan ID wilayah saat ini. Misalnya, Tiongkok (Shanghai) adalah cn-shanghai. Untuk informasi cara menanyakan ID wilayah, lihat Wilayah dan zona.

    storage

    Tidak

    Dua metode pemasangan berikut didukung. Pilih salah satu:

    • OSS: Lebih mudah mengunggah dan mengunduh data menggunakan OSS. Dapat menghasilkan URL akses jaringan publik untuk gambar yang dihasilkan, tetapi pergantian model dan penyimpanan gambar lebih lambat dibandingkan dengan NAS. Konfigurasikan storage.oss.path ke path bucket OSS yang sudah ada.

    • NAS: Menggunakan pemasangan NAS lebih cepat untuk pergantian model dan penyimpanan gambar. Konfigurasikan storage.nfs.server ke sistem file NAS yang sudah ada.

    Topik ini menggunakan contoh pemasangan OSS.

    cloud.networking

    Tidak

    Saat `storage` menggunakan pemasangan NAS, konfigurasikan virtual private cloud (VPC), termasuk `vpc_id` (ID VPC), `vswitch_id` (ID vSwitch), dan `security_group_id` (ID grup keamanan). VPC yang dikonfigurasi harus konsisten dengan sistem file NAS tujuan umum.

    Menyebarkan Layanan Edisi API

    {
        "metadata": {
            "name": "sd_async",
            "instance": 1,
            "rpc.worker_threads": 1,
            "type": "Async"
        },
        "cloud": {
            "computing": {
                "instance_type": "ml.gu7i.c16m60.1-gu30",
                "instances": null
            },
            "networking": {
                "vpc_id": "vpc-bp1t2wukzskw9139n****",
                "vswitch_id": "vsw-bp12utkudylvp4c70****",
                "security_group_id": "sg-bp11nqxfd0iq6v5g****"
            }
        },
        "queue": {
            "cpu": 1,
            "max_delivery": 1,
            "memory": 4000,
            "resource": ""
        },
        "storage": [
            {
                "oss": {
                    "path": "oss://examplebucket/aohai-singapore/",
                    "readOnly": false
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            },
            {
                "nfs": {
                    "path": "/",
                    "server": "0c9624****-fgh60.cn-hangzhou.nas.aliyuncs.com"
                },
                "properties": {
                    "resource_type": "model"
                },
                "mount_path": "/code/stable-diffusion-webui/data"
            }
        ],
        "containers": [
            {
                "image": "eas-registry-vpc.<region>.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:4.2",
                "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api-log --time-log --nowebui --data-dir=/code/stable-diffusion-webui/data",
                "port": 8000
            }
        ]
    } 

    Dibandingkan dengan konfigurasi layanan Edisi Standar, berikut adalah perubahan konfigurasi untuk layanan Edisi API. Konfigurasi parameter lainnya sama dengan layanan Edisi Standar.

    Parameter

    Deskripsi

    Hapus parameter berikut:

    metadata.enable_webservice

    Hapus parameter ini untuk menonaktifkan server web.

    containers.script

    Hapus --filebrowser yang dikonfigurasi dalam containers.script untuk mempercepat startup layanan.

    Tambahkan parameter berikut:

    metadata.type

    Konfigurasikan sebagai `Async` untuk mengaktifkan layanan asinkron.

    metadata.rpc.worker_threads

    Konfigurasikan sebagai `1`. Satu instans hanya memungkinkan pemrosesan konkuren satu permintaan.

    queue.max_delivery

    Konfigurasikan sebagai `1`. Tidak diperbolehkan mencoba ulang setelah terjadi kesalahan pemrosesan pesan.

    containers.script

    Tambahkan --nowebui (untuk mempercepat startup) dan --time-log (untuk mencatat waktu respons API) ke konfigurasi containers.script.

    Untuk instruksi konfigurasi parameter lebih lanjut, lihat Menyebarkan Layanan Edisi Standar.

  4. Klik Deploy.

Instal Plugin untuk Fungsionalitas yang Ditingkatkan

Konfigurasikan plugin untuk Stable Diffusion WebUI guna mencapai fungsionalitas yang lebih beragam. PAI telah memasang banyak plugin, termasuk BeautifulPrompt yang dikembangkan oleh PAI, digunakan untuk bereksperimen dengan ekspansi dan keindahan prompt. Bagian ini menggunakan plugin BeautifulPrompt sebagai contoh untuk memperkenalkan instalasi dan penggunaannya.

Instal Plugin

Lihat dan instal plugin di tab Extensions pada halaman WebUI sebagai berikut:

  1. Pada halaman WebUI, di bawah tab Extensions, periksa apakah BeautifulPrompt dipilih. Jika belum, pilih plugin tersebut dan klik Apply changes and reload UI untuk memuat ulang plugin BeautifulPrompt.image

    Saat menginstal plugin, halaman WebUI secara otomatis dimulai ulang. Setelah dimuat ulang, verifikasi inferensi.

Verifikasi Inferensi Menggunakan Plugin

  1. Beralih ke tab BeautifulPrompt. Di kotak teks, masukkan prompt sederhana, lalu klik Generate untuk membuat prompt yang lebih detail.image

    PAI menyediakan beberapa model generasi prompt. Setiap model menghasilkan prompt yang sedikit berbeda, yaitu:

    • pai-bloom-1b1-text2prompt-sd-v2: Unggul dalam menghasilkan prompt untuk skenario kompleks.

    • pai-bloom-1b1-text2prompt-sd: Menghasilkan prompt yang menggambarkan objek tunggal.

    Pilih model yang sesuai untuk menghasilkan prompt sesuai kebutuhan.image

  2. Pilih prompt yang akan digunakan, lalu klik to txt2img di sebelah kanan prompt.

    Halaman secara otomatis dialihkan ke tab Text-to-Image dan mengisi otomatis area prompt.image

  3. Klik Generate untuk menghasilkan gambar di sisi kanan halaman WebUI.image

    Dibandingkan tanpa menggunakan plugin BeautifulPrompt, penggunaannya meningkatkan kualitas estetika gambar yang dihasilkan dan membantu menambahkan lebih banyak detail. Tabel berikut membandingkan efek penggunaan plugin BeautifulPrompt dalam skenario lain:

    Input Prompt

    Efek Tanpa BeautifulPrompt

    Efek Dengan BeautifulPrompt

    a cat

    image.png

    image.png

    a giant tiger

    image.png

    image.png

FAQ

T: Bagaimana cara memasang direktori model dan output saya?

Setelah layanan disebarkan, sistem secara otomatis membuat struktur direktori berikut di ruang penyimpanan OSS atau NAS yang dipasang: image

Ini mencakup:

  • models: Direktori ini menyimpan file model.

  • Setelah memulai permintaan inferensi, sistem secara otomatis menyimpan file hasil ke direktori ini sesuai pengaturan yang telah dikonfigurasi sebelumnya dalam kode API.

Simpan model yang diunduh dari komunitas sumber terbuka atau model LoRA dan Stable Diffusion yang Anda latih di direktori yang ditentukan di atas untuk memuat dan menggunakan model baru. Lakukan langkah-langkah berikut:

  1. Unggah file model ke subdirektori yang sesuai di bawah direktori models penyimpanan yang dipasang. Untuk detailnya, lihat Langkah 2: Unggah file.

  2. Pada halaman Elastic Algorithm Service (EAS), klik image>Restart Service di kolom Actions layanan target. Perubahan berlaku setelah layanan berhasil dimulai ulang.

  3. Pada halaman Stable Diffusion WebUI, ganti model dan verifikasi inferensi model.

    image

T: Apakah plugin yang diunduh dan file yang diunggah disimpan di instans jika konfigurasi tidak berubah?

Tanpa pemasangan penyimpanan, siklus hidup file konsisten dengan layanan. Semua file dihapus saat layanan berhenti, dimulai ulang, atau dihapus. Oleh karena itu, simpan file-file ini dengan memasang penyimpanan eksternal, seperti OSS atau NAS.

T: Bagaimana jika layanan tetap macet dalam waktu lama?

  • Pertama, coba buka kembali antarmuka Stable Diffusion WebUI atau mulai ulang layanan EAS untuk menyelesaikan masalah:

    • Klik layanan target untuk membuka halaman Overview. Di pojok kanan atas, klik Web applications untuk membuka kembali Stable Diffusion WebUI.

    • Klik kolom Actions layanan target, klik image > Restart Service, dan mulai ulang layanan EAS.

  • Jika memulai ulang tidak menyelesaikan masalah dalam waktu lama, kemungkinan besar karena layanan perlu mengunduh model atau plugin dari jaringan publik. EAS tidak mengaktifkan akses jaringan publik secara default. Gambar dapat dimulai secara offline, dan model yang dipasang tidak memerlukan jaringan. Namun, beberapa plugin bergantung pada pengunduhan konten dari Internet. Dalam kasus ini, temukan path unduhan model atau plugin dari log. Unduh model secara manual dan unggah ke OSS untuk dipasang. Untuk detailnya, lihat T: Bagaimana cara memasang direktori model dan output saya?. Jika konektivitas jaringan publik masih diperlukan, lihat Akses sumber daya jaringan publik atau internal di EAS untuk mengonfigurasi akses jaringan publik.

T: Bagaimana cara mengganti bahasa default halaman WebUI ke Bahasa Inggris?

  1. Pada halaman Stable Diffusion WebUI, klik Settings.

  2. Di panel navigasi kiri, klik User Interface. Di area Localization di sebelah kanan, pilih None.

  3. Di bagian atas halaman Stable Diffusion WebUI, klik Save Settings. Setelah disimpan, klik Reload UI.

    Muat ulang halaman WebUI untuk beralih ke Bahasa Inggris.

T: Bagaimana cara mengelola sistem file saya?

Saat menyebarkan layanan Edisi Standar dan WebUI Terkluster, sistem secara otomatis menambahkan parameter --filebrowser ke perintah run secara default. Kelola sistem file Anda langsung melalui antarmuka WebUI sebagai berikut:

  1. Pada halaman Stable Diffusion WebUI, klik tab FileBrowser. Lihat sistem file secara langsung, atau lakukan operasi unggah dan unduh.

    image

P: Kesalahan: Tidak ada berkas atau direktori seperti itu: 'data-oss/data-********.png'

  1. Periksa versi penyebaran. Jika merupakan Edisi API (gambar x.x-api) atau WebUI Terkluster (gambar x.x-cluster-webui), konfigurasi model diperlukan.

  2. Periksa path pemasangan. Verifikasi apakah parameter --data-dir ada dalam perintah run dan pastikan path-nya konsisten dengan path pemasangan OSS.

    image

T: Tidak dapat mengakses halaman WebUI.

Periksa versi penyebaran layanan. Edisi API tidak mendukung penggunaan WebUI. Jika menggunakan penyebaran kustom, gambar x.x-api adalah untuk Edisi API.

Lampiran

Parameter yang Didukung Selama Startup Layanan

  • Parameter Umum

    Parameter Umum

    Deskripsi Fungsi

    Rekomendasi Penggunaan

    --blade

    Aktifkan akselerasi PAI-blade untuk meningkatkan kecepatan generasi gambar.

    Aktifkan.

    --filebrowser

    Plugin yang memungkinkan Anda mengunggah dan mengunduh model atau gambar.

    Diaktifkan secara default.

    --data-dir /code/stable-diffusion-webui/data-oss

    Path yang digunakan untuk pemasangan penyimpanan persisten.

    Gunakan saat memasang penyimpanan persisten. Path awal default adalah /code/stable-diffusion-webui/. Anda juga dapat menggunakan path relatif.

    --api

    Mode pemanggilan API WebUI.

    Diaktifkan secara default.

    --enable-nsfw-censor

    Nonaktif secara default. Jika Anda memiliki persyaratan keamanan dan kepatuhan, aktifkan fitur deteksi pornografi.

    Atur sesuai kebutuhan.

    --always-hide-tabs

    Tentukan tab tertentu untuk disembunyikan.

    Atur sesuai kebutuhan.

    --min-ram-reserved 40 --sd-dynamic-cache

    Anda dapat menyimpan cache model besar Stable Diffusion ke memori.

    Tidak ada.

  • Parameter Edisi Terkluster

    Catatan

    Model besar ckpt dan ControlNet secara otomatis memuat file dari folder publik dan file kustom Anda.

    Parameter Edisi Terkluster

    Deskripsi Fungsi

    Rekomendasi Penggunaan

    --lora-dir

    Tentukan direktori model LoRA publik, misalnya: --lora-dir /code/stable-diffusion-webui/data-oss/models/Lora.

    Tidak dikonfigurasi secara default. Semua direktori LoRA pengguna diisolasi, dan hanya model LoRA di folder pengguna yang dimuat. Saat direktori tertentu ditentukan, semua pengguna secara bersamaan memuat model LoRA dari direktori publik dan folder pengguna mereka.

    --vae-dir

    Tentukan direktori model VAE publik, misalnya: --vae-dir /code/stable-diffusion-webui/data-oss/models/VAE.

    Tidak dikonfigurasi secara default. Semua direktori VAE pengguna diisolasi, dan hanya model VAE di folder pengguna yang dimuat. Saat direktori tertentu ditentukan, semua pengguna hanya memuat model VAE dari direktori publik tersebut.

    --gfpgan-dir

    Tentukan direktori model GFPGAN publik, misalnya: --gfpgan-dir /code/stable-diffusion-webui/data-oss/models/GFPGAN.

    Tidak dikonfigurasi secara default. Semua direktori GFPGAN pengguna diisolasi, dan hanya model GFPGAN di folder pengguna yang dimuat. Saat direktori tertentu ditentukan, semua pengguna hanya memuat model GFPGAN dari direktori publik tersebut.

    --embeddings-dir

    Tentukan direktori model embeddings publik, misalnya: --embeddings-dir /code/stable-diffusion-webui/data-oss/embeddings.

    Tidak dikonfigurasi secara default. Semua direktori embeddings pengguna diisolasi, dan hanya model embeddings di folder pengguna yang dimuat. Saat direktori tertentu ditentukan, semua pengguna hanya memuat model embeddings dari direktori publik tersebut.

    --hypernetwork-dir

    Tentukan direktori model hypernetwork publik, misalnya: --hypernetwork-dir /code/stable-diffusion-webui/data-oss/models/hypernetworks.

    Tidak dikonfigurasi secara default. Semua direktori hypernetwork pengguna diisolasi, dan hanya model hypernetwork di folder pengguna yang dimuat. Saat direktori tertentu ditentukan, semua pengguna hanya memuat model hypernetwork dari direktori publik tersebut.

    --root-extensions

    Direktori plugin menggunakan direktori bersama. Setelah menggunakan parameter ini, semua pengguna melihat plugin yang sama persis.

    Gunakan parameter ini saat menginstal atau mengelola plugin secara terpusat.

Parameter Tambahan yang Didukung oleh Operasi API

EAS mendukung fitur baru berdasarkan API native Stable Diffusion WebUI. Selain parameter yang diperlukan, tambahkan parameter opsional ke operasi API untuk fungsionalitas yang lebih kaya atau kebutuhan khusus:

  • Tentukan model Stable Diffusion, model VAE, dan direktori penyimpanan.

  • Dukung parameter input melalui URL dan kembalikan kode status yang sesuai.

  • Akses gambar yang dihasilkan dan gambar yang sesuai dengan ControlNet melalui URL.

Contoh penggunaan spesifik sebagai berikut:

Contoh Permintaan dan Respons txt2img

Contoh format data permintaan sebagai berikut:

{
      "alwayson_scripts": {
          "sd_model_checkpoint": "deliberate_v2.safetensors",  
          "save_dir": "/code/stable-diffusion-webui/data-oss/outputs",
          "sd_vae": "Automatic"
      },
      "steps": 20,
      "prompt": "girls",          
      "batch_size": 1,                                            
      "n_iter": 2,                                                 
      "width": 576, 
      "height": 576,
      "negative_prompt": "ugly, out of frame"
  }

Deskripsi parameter utama sebagai berikut:

  • sd_model_checkpoint: Menentukan parameter model Stable Diffusion dan mengaktifkan pergantian otomatis ke model besar.

  • sd_vae: Menentukan model VAE.

  • save_dir: Menentukan path penyimpanan untuk gambar yang dihasilkan.

Contoh permintaan API sinkron sebagai berikut:

# Panggil API sinkron untuk memverifikasi efek model.

curl --location --request POST '<service_url>/sdapi/v1/txt2img' \
--header 'Authorization: <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
      "alwayson_scripts": {
          "sd_model_checkpoint": "deliberate_v2.safetensors",
          "save_dir": "/code/stable-diffusion-webui/data-oss/outputs",
          "sd_vae": "Automatic"
      },
      "prompt": "girls",          
      "batch_size": 1,                                            
      "n_iter": 2,                                                 
      "width": 576, 
      "height": 576,
      "negative_prompt": "ugly, out of frame"
  }'

Contoh format data respons sebagai berikut:

{
  "images": [],
  "parameters": {
    "id_task": "14837",
    "status": 0,
    "image_url": "/code/stable-diffusion-webui/data-oss/outputs/txt2img-grids/2023-07-24/grid-29a67c1c-099a-4d00-8ff3-1ebe6e64931a.png,/code/stable-diffusion-webui/data-oss/outputs/txt2img-images/2023-07-24/74626268-6c81-45ff-90b7-faba579dc309-1146644551.png,/code/stable-diffusion-webui/data-oss/outputs/txt2img-images/2023-07-24/6a233060-e197-4169-86ab-1c18adf04e3f-1146644552.png",
    "seed": "1146644551,1146644552",
    "error_msg": "",
    "total_time": 32.22393465042114
  },
  "info": ""
}

Contoh permintaan API asinkron sebagai berikut:

# Kirim data langsung ke antrian asinkron.
curl --location --request POST '<service_url>/sdapi/v1/txt2img' \
--header 'Authorization: <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "alwayson_scripts": {
        "sd_model_checkpoint": "deliberate_v2.safetensors",
        "id_task": "14837",
        "uid": "123",
        "save_dir": "tmp/outputs"
    },
    "prompt": "girls",
    "batch_size": 1,
    "n_iter": 2,
    "width": 576,
    "height": 576,
    "negative_prompt": "ugly, out of frame"
}'

Contoh Format Data Permintaan img2img

Contoh format data permintaan sebagai berikut:

{
    "alwayson_scripts": {
        "image_link":"https://eas-cache-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/stable-diffusion-cache/tests/boy.png",
        "sd_model_checkpoint": "deliberate_v2.safetensors",
        "sd_vae": "Automatic",
        "save_dir": "/code/stable-diffusion-webui/data-oss/outputs"
    },
    "prompt": "girl",
    "batch_size": 1,                                            
    "n_iter": 2,                                                 
    "width": 576, 
    "height": 576,
    "negative_prompt": "ugly, out of frame",
    "steps": 20, # Langkah sampling
    "seed": 111,   
    "subseed": 111, # Seed variasi
    "subseed_strength": 0, # Kekuatan variasi
    "seed_resize_from_h": 0, # Ubah ukuran seed dari tinggi
    "seed_resize_from_w": 0, # Ubah ukuran seed dari lebar
    "seed_enable_extras": false, # Ekstra
    "sampler_name": "DDIM", # Metode sampling
    "cfg_scale": 7.5, # Skala CFG
    "restore_faces": true, # Pulihkan wajah
    "tiling": false, # Ubin
    "init_images": [], # string base64 gambar, default None
    "mask_blur": 4, # Kabur mask
    "resize_mode": 1, # 0 hanya ubah ukuran, 1 potong dan ubah ukuran, 2 ubah ukuran dan isi, 3 hanya ubah ukuran
    "denoising_strength": 0.75, # Kekuatan penghilangan derau
    "inpainting_mask_invert": 0, #int, indeks ['Inpaint masked', 'Inpaint not masked'], Mode mask
    "inpainting_fill": 0, #indeks ['fill', 'original', 'latent noise', 'latent nothing'], Konten yang dimask
    "inpaint_full_res": 0, # indeks ["Whole picture", "Only masked"], Area inpaint
    "inpaint_full_res_padding": 32, #minimum=0, maximum=256, step=4, value=32, Padding hanya yang dimask, piksel
    #"image_cfg_scale": 1, # diubah ukurannya berdasarkan skala
    #"script_name": "Outpainting mk2", # Nama skrip yang digunakan. Jangan tambahkan bidang ini jika tidak digunakan.
    #"script_args": ["Outpainting", 128, 8, ["left", "right", "up", "down"], 1, 0.05]  # Parameter yang sesuai dengan skrip. Di sini, sesuai dengan: bidang tetap, piksel, mask_blur, arah, noise_q, variasi warna
}

Contoh format data respons sebagai berikut:

{
    "images":[],
    "parameters":{
        "id_task":"14837",
        "status":0,
        "image_url":"/data/api_test/img2img-grids/2023-06-05/grid-0000.png,/data/api_test/img2img-images/2023-06-05/00000-1003.png,/data/api_test/img2img-images/2023-06-05/00001-1004.png",
        "seed":"1003,1004",
        "error_msg":""
    },
    "info":""
}

txt2img Menggunakan Format Data ControlNet

Format data permintaan sebagai berikut:

{
    "alwayson_scripts": {
        "sd_model_checkpoint": "deliberate_v2.safetensors", # Nama model, wajib
        "save_dir": "/code/stable-diffusion-webui/data-oss/outputs",
        "controlnet":{
            "args":[
                {
                    "image_link": "https://pai-aigc-dataset.oss-cn-hangzhou.aliyuncs.com/pixabay_images/00008b87bf3ff6742b8cf81c358b9dbc.jpg",
                    "enabled": true, 
                    "module": "canny", 
                    "model": "control_v11p_sd15_canny", 
                    "weight": 1, 
                    "resize_mode": "Crop and Resize", 
                    "low_vram": false, 
                    "processor_res": 512, 
                    "threshold_a": 100, 
                    "threshold_b": 200, 
                    "guidance_start": 0, 
                    "guidance_end": 1, 
                    "pixel_perfect": true, 
                    "control_mode": "Balanced", 
                    "input_mode": "simple", 
                    "batch_images": "", 
                    "output_dir": "", 
                    "loopback": false
                }
            ]
        }
    },
    # Parameter utama
    "prompt": "girls",          
    "batch_size": 1,                                            
    "n_iter": 2,                                                 
    "width": 576, 
    "height": 576,
    "negative_prompt": "ugly, out of frame"
}

Contoh format data respons sebagai berikut:

{
    "images":[],
    "parameters":{
        "id_task":"14837",
        "status":0,
        "image_url":"/data/api_test/txt2img-grids/2023-06-05/grid-0007.png,/data/api_test/txt2img-images/2023-06-05/00014-1003.png,/data/api_test/txt2img-images/2023-06-05/00015-1004.png",
        "seed":"1003,1004",
        "error_msg":"",
        "image_mask_url":"/data/api_test/controlnet_mask/2023-06-05/00000.png,/data/api_test/controlnet_mask/2023-06-05/00001.png"
    },
    "info":""
}

Referensi