All Products
Search
Document Center

Platform For AI:Deploy Seni AI dengan SDWebUI

Last Updated:Aug 06, 2026

Stable Diffusion (SD) adalah model pembangkit image yang andal dan mampu menghasilkan image berkualitas tinggi dengan resolusi tinggi. Stable Diffusion WebUI menyediakan antarmuka pengguna visual berbasis Gradio dengan kumpulan alat pembangkit image yang lengkap. Elastic Algorithm Service (EAS) mendukung deploy berbasis skenario—Anda dapat deploy layanan SD WebUI hanya dengan satu klik setelah mengonfigurasi beberapa parameter.

Fitur dan keunggulan

Dibandingkan dengan layanan yang dikelola sendiri, PAI-EAS menawarkan keunggulan berikut:

  • Deploy sekali klik: Runtime image yang telah dikonfigurasi sebelumnya berisi semua dependensi.

  • Auto scaling GPU: Menyesuaikan sumber daya GPU secara dinamis berdasarkan permintaan.

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

  • Manajemen file terintegrasi: Ekstensi FileBrowser mempermudah pengunggahan model.

Pilih versi yang sesuai

Versi

Skenario

Metode pemanggilan

Penagihan

Standard Edition

Pengujian pribadi dan pengembangan prototipe

WebUI, panggilan API (sinkron)

Anda dikenai biaya berdasarkan konfigurasi deploy. Untuk informasi lebih lanjut, lihat Penagihan EAS.

API edition

API lingkungan produksi, skenario konkurensi tinggi

Panggilan API (sinkron & asinkron)

Cluster WebUI edition

Kolaborasi tim, tim desain

WebUI

Serverless edition

Catatan

Edisi ini hanya tersedia di wilayah China (Shanghai) dan China (Hangzhou).

Beban kerja elastis, optimalisasi biaya

WebUI

Deploy layanan gratis. Anda hanya dikenai biaya berdasarkan durasi pembangkitan image.

Memulai Cepat: Deploy layanan pembangkit seni AI menggunakan templat berbasis skenario

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

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

  3. Konfigurasikan parameter utama berikut:

    • Version: Pilih Standard Edition.

    • Model Settings: Pilih OSS dan jalur bucket untuk menyimpan file model serta image hasil inferensi.

    • Instance Type: Pilih tipe GPU. Spesifikasi yang direkomendasikan adalah ml.gu7i.c16m60.1-gu30 karena paling hemat biaya.

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

Memanggil layanan

Memanggil menggunakan WebUI

Anda dapat menggunakan WebUI untuk memanggil layanan edisi Standard, Cluster WebUI, dan Serverless. Ikuti langkah-langkah berikut:

  1. Klik nama layanan target untuk membuka halaman Overview, lalu klik Web applications di pojok kanan atas.

  2. Lakukan validasi inferensi model.

    Pada halaman Stable Diffusion WebUI, di tab Text-to-Image, masukkan prompt positif, misalnya cute dog, lalu klik Generate untuk membuat seni AI.

Memanggil menggunakan panggilan API sinkron

Setelah deploy layanan edisi Standard atau API, Anda dapat mengirim permintaan API sinkron.

Kueri informasi endpoint

  1. Setelah layanan berhasil di-deploy, klik nama layanan untuk membuka halaman Overview.

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

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

Contoh pemanggilan

Simpan image ke perangkat lokal

import requests
import base64
from PIL import Image
import io

# PENTING: Hapus garis miring (/) di akhir URL endpoint.
SERVICE_URL = "<your_endpoint_url>"
TOKEN = "<your_token>"

def generate_image(prompt: str) -> Image.Image:
    """Menghasilkan image berdasarkan prompt teks."""
    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()
    
    # Dekode image pertama
    img_data = response.json()["images"][0]
    return Image.open(io.BytesIO(base64.b64decode(img_data)))

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

Simpan image ke OSS

import requests

# PENTING: Hapus garis miring (/) di akhir URL endpoint.
SERVICE_URL = "<your_endpoint_url>"
TOKEN = "<your_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 jalur image yang disimpan
data = response.json()

# Ini adalah mount_path yang sesuai dengan folder OSS yang dipasang secara default saat Anda deploy layanan EAS.
mount_path = "/code/stable-diffusion-webui/data"

# Ini adalah alamat bucket OSS yang Anda pilih saat deploy layanan EAS.
oss_url = "oss://examplebucket/data-oss"

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

Anda juga dapat menggunakan format data LoRA dan ControlNet dalam data permintaan.

Gunakan konfigurasi model LoRA dalam data permintaan

Saat mengirim permintaan layanan, Anda dapat menambahkan <lora:yaeMikoRealistic_Genshin:1000> ke badan permintaan untuk menyertakan model LoRA. Untuk informasi lebih lanjut, lihat Lora.

Contoh berikut menunjukkan konfigurasi badan permintaan.

{
  "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 memungkinkan Anda melakukan transformasi image umum. Untuk informasi lebih lanjut tentang cara mengonfigurasinya, lihat Format data ControlNet untuk teks-ke-image.

Memanggil menggunakan panggilan API asinkron

Setelah deploy layanan edisi API, Anda dapat mengirim permintaan API asinkron. Dalam mode asinkron, klien tidak perlu menunggu hasilnya; hasilnya akan didorong dari sisi server melalui langganan. Ikuti langkah-langkah berikut:

Informasi Pemanggilan Kueri

  1. Setelah layanan berhasil di-deploy, klik nama layanan untuk membuka halaman Overview.

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

  3. Pada halaman Invocation Information, klik tab Asynchronous Invocation untuk memperoleh alamat pemanggilan publik dan token.

Mengirim permintaan

Klien mengirim permintaan ke sisi server melalui operasi API asinkron.

import requests


SERVICE_URL = "<your_public_input_endpoint>"
TOKEN = "<your_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"Tugas dimasukkan ke antrian: {response.json()}")
Penting
  • Antrian asinkron memiliki batasan ukuran permintaan input dan hasil output, yang biasanya tidak boleh melebihi 8 KB. Oleh karena itu, saat mengirim permintaan, Anda harus memenuhi dua kondisi berikut:

    • Jika data permintaan berisi image, kami merekomendasikan agar Anda menggunakan URL untuk meneruskan informasi image. Stable Diffusion WebUI secara otomatis mengunduh dan mengurai data image tersebut.

    • Untuk memastikan bahwa hasil yang dikembalikan tidak berisi data image asli, kami merekomendasikan agar Anda menggunakan save_dir untuk menentukan jalur penyimpanan image yang dihasilkan. Untuk informasi lebih lanjut, lihat Parameter tambahan yang dapat dikonfigurasi untuk operasi API.

Hasil langganan

Klien menerima hasil melalui langganan. Setelah sisi server memproses permintaan, hasilnya secara otomatis didorong ke klien.

from eas_prediction import QueueClient

# Anda harus menyesuaikan format URL endpoint agar sesuai dengan contoh: 112231234124214.cn-hangzhou.pai-eas.aliyuncs.com
SERVICE_URL = "<your_endpoint_url>"
TOKEN = "<your_token>"
# Nama layanan yang dikonfigurasi saat layanan dibuat
SERVICE_NAME = "<your_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-fitur baru berdasarkan operasi API Stable Diffusion WebUI native. Anda dapat menambahkan parameter opsional ke data permintaan untuk mengimplementasikan lebih banyak fitur. Untuk informasi lebih lanjut, lihat Parameter tambahan yang dapat dikonfigurasi untuk operasi API.

Opsi deploy lanjutan

Deploy kustom

Anda dapat deploy layanan edisi Standard, API, dan Cluster WebUI. Ikuti langkah-langkah berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih workspace 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 deploy layanan WebUI edisi Standard dan Cluster, pilih Image-based Deployment dan pilih Enable Web App.

    • Saat deploy layanan edisi API, pilih Image-based Deployment, dan pilih Asynchronous Services.

    Image Configuration

    Pada daftar Alibaba Cloud Image, pilih stable-diffusion-webui, dan untuk nama image, pilih versi terbaru:

    • x.x-standard: Standard Edition.

    • x.x-api: API edition.

    • x.x-cluster-webui: Cluster WebUI edition.

    Catatan
    • Karena iterasi versi yang cepat, pilih versi image terbaru saat deploy.

    • Jika Anda memerlukan beberapa pengguna untuk menghasilkan image menggunakan satu Stable Diffusion WebUI secara bersamaan, pilih versi x.x-cluster-webui.

    • Untuk informasi lebih lanjut tentang skenario masing-masing versi, lihat Pilih versi yang sesuai.

    Storage Mount

    Digunakan untuk menyimpan file model dan image yang dihasilkan.

    Penting

    Anda harus mengonfigurasi pemasangan penyimpanan untuk edisi API dan Cluster.

    Jenis yang didukung:

    • OSS

      • Uri: Atur jalur OSS ke jalur bucket OSS yang sudah ada.

      • Mount Path: Atur ke /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: Atur ke /.

      • Mount Path: Atur ke /code/stable-diffusion-webui/data.

    • PAI Model

      • PAI Model: Pilih model PAI dan versi model.

      • Mount Path: Atur ke /code/stable-diffusion-webui/data.

    Topik ini menggunakan pemasangan OSS sebagai contoh.

    Command to Run

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

    • Setelah memasang penyimpanan, Anda perlu menambahkan parameter --data-dir ke perintah run untuk memasang data ke jalur yang ditentukan pada instans layanan. Jalur tersebut harus sama dengan jalur pemasangan, misalnya --data-dir /code/stable-diffusion-webui/data.

    • (Opsional) Anda juga dapat menambahkan parameter --blade atau --xformers ke perintah run untuk mengaktifkan akselerasi inferensi dan meningkatkan kecepatan pembangkitan image. Untuk informasi lebih lanjut tentang konfigurasi parameter, lihat Parameter yang dapat dikonfigurasi saat startup layanan.

    Resource Information

    Deployment

    Pilih tipe GPU. Untuk Resource Specification, nilai yang direkomendasikan adalah ml.gu7i.c16m60.1-gu30 (paling hemat biaya).

    Service Access

    VPC

    Saat Anda memilih NAS untuk Storage Mount, sistem secara otomatis mencocokkan VPC yang terhubung ke VPC tempat sistem file NAS berada. Tidak diperlukan modifikasi tambahan.

    vSwitch

    Security Group Name

  4. Setelah mengonfigurasi parameter, klik Deploy.

Deploy berbasis JSON

Anda dapat menggunakan metode berbasis JSON untuk deploy layanan Stable Diffusion WebUI. Langkah-langkah berikut menunjukkan cara deploy edisi Standard dan API:

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

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

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

    Deploy layanan edisi Standard

    {
        "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"
            }
        ]
    } 

    Tabel berikut menjelaskan parameter utama.

    Parameter

    Wajib

    Deskripsi

    metadata.name

    Ya

    Nama kustom layanan model. Nama harus unik dalam wilayah yang sama.

    containers.image

    Ya

    Ganti <region> dengan ID wilayah saat ini. Misalnya, ID untuk China (Shanghai) adalah cn-shanghai. Untuk informasi lebih lanjut tentang cara memeriksa ID wilayah, lihat Wilayah dan zona.

    storage

    Tidak

    Dua metode pemasangan berikut didukung. Anda dapat memilih salah satu:

    • OSS: Menggunakan OSS untuk mengunggah dan mengunduh data lebih nyaman dan dapat menghasilkan URL akses publik untuk image yang dihasilkan. Namun, pergantian model dan penyimpanan image lebih lambat dibandingkan dengan NAS. Anda perlu mengatur storage.oss.path ke jalur bucket OSS yang telah dibuat.

    • NAS: Menggunakan pemasangan NAS memberikan pergantian model dan penyimpanan image yang lebih cepat. Anda perlu mengatur storage.nfs.server ke sistem file NAS yang telah dibuat.

    Topik ini menggunakan pemasangan OSS sebagai contoh.

    cloud.networking

    Tidak

    Saat menggunakan pemasangan NAS untuk penyimpanan, Anda perlu mengonfigurasi VPC, termasuk vpc_id (ID VPC), vswitch_id (ID vSwitch), dan security_group_id (ID grup keamanan). VPC yang dikonfigurasi harus sama dengan VPC untuk sistem file NAS tujuan umum.

    Deploy 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 Standard, layanan edisi API memiliki perubahan konfigurasi berikut. Konfigurasi parameter lainnya sama dengan layanan edisi Standard.

    Parameter

    Deskripsi

    Hapus parameter berikut:

    metadata.enable_webservice

    Hapus parameter ini untuk menunjukkan bahwa layanan web tidak diaktifkan.

    containers.script

    Hapus --filebrowser dari konfigurasi containers.script untuk mempercepat startup layanan.

    Tambahkan parameter berikut:

    metadata.type

    Atur ke Async untuk mengaktifkan layanan asinkron.

    metadata.rpc.worker_threads

    Atur ke 1 untuk memungkinkan satu instans memproses hanya satu permintaan secara konkuren.

    queue.max_delivery

    Atur ke 1 untuk mencegah percobaan 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 informasi lebih lanjut tentang konfigurasi parameter, lihat Deploy layanan edisi Standard.

  4. Klik Deploy.

Instal plugin untuk fitur tambahan

Anda dapat menginstal plugin untuk Stable Diffusion WebUI guna memperluas fungsionalitasnya. PAI menyediakan beberapa plugin pra-instal, seperti plugin BeautifulPrompt yang memperluas dan memperhalus prompt. Bagian berikut menggunakan BeautifulPrompt sebagai contoh untuk menunjukkan cara menginstal dan menggunakan plugin.

Menginstal plugin

Anda dapat melihat dan menginstal plugin pada tab Extensions di halaman WebUI. Ikuti langkah-langkah berikut:

  1. Klik nama layanan target untuk membuka halaman Overview, lalu klik Web applications di pojok kanan atas.

  2. Pada halaman WebUI, di tab Extensions, periksa apakah BeautifulPrompt telah dipilih. Jika belum, centang plugin tersebut dan klik Apply and restart UI untuk memuat ulang plugin BeautifulPrompt.

    Saat menginstal plugin, halaman WebUI akan restart secara otomatis. Setelah dimuat ulang, Anda dapat melakukan validasi inferensi.

Menggunakan plugin untuk validasi inferensi

  1. Beralih ke tab BeautifulPrompt, masukkan prompt sederhana di kotak teks, lalu klik Generate untuk menghasilkan prompt yang lebih detail.

    Anda dapat mengonfigurasi parameter pembangkitan berikut:

    • Top K: 50

    • Top P: 0.9

    • Temperature: 0.9

    • Repetition penalty: 1.05

    • Max new tokens: 384

    • Num prompts: 5

    Setelah mengklik Generate, panel hasil di sebelah kanan mengeluarkan beberapa prompt Stable Diffusion yang diperluas. Di sebelah kanan setiap hasil, tombol to txt2img dan to img2img memungkinkan Anda mengirim prompt langsung ke halaman fitur yang sesuai.

    PAI menyediakan beberapa model pembangkit prompt, dan setiap model menghasilkan prompt yang sedikit berbeda. Model-model tersebut adalah:

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

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

    Anda dapat memilih model yang sesuai untuk menghasilkan prompt sesuai kebutuhan. Anda juga dapat memilih kotak centang Negative prompt untuk menghasilkan prompt negatif secara bersamaan.

  2. Pilih prompt yang ingin Anda gunakan dan klik to txt2img di sebelah kanan prompt tersebut.

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

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

    Prompt yang ditingkatkan mencakup deskriptor kualitas dan komposisi image yang kaya, seperti masterpiece, best quality, dan ultra-detailed, yang membantu menghasilkan image bergaya anime berkualitas tinggi.

    Dibandingkan dengan tidak menggunakan plugin BeautifulPrompt, penggunaannya dapat meningkatkan kualitas estetika image yang dihasilkan dan membantu Anda menambahkan lebih banyak detail. Tabel berikut menunjukkan perbandingan hasil dengan dan tanpa plugin BeautifulPrompt untuk skenario lain.

    Prompt Masukan

    Hasil tanpa BeautifulPrompt

    Hasil dengan BeautifulPrompt

    a cat

    image.png

    image.png

    a giant tiger

    image.png

    image.png

FAQ

T: Bagaimana cara memasang model dan direktori output saya sendiri?

Setelah layanan di-deploy, sistem secara otomatis membuat struktur direktori berikut di ruang penyimpanan OSS atau NAS yang dipasang.

  • api_rec/

  • configs/

  • extensions/

  • images/

  • models/

  • progress_images/

  • requests_folder/

  • cache.json

  • params.txt

  • ui-config.json

Di mana:

  • models: Direktori ini digunakan untuk menyimpan file model.

  • outputs: Setelah permintaan inferensi dimulai, sistem secara otomatis mengeluarkan file hasil ke direktori ini sesuai konfigurasi yang telah ditetapkan dalam kode API.

Anda dapat menyimpan model yang diunduh dari komunitas open source atau model LoRA atau Stable Diffusion yang Anda latih sendiri di direktori yang ditentukan untuk memuat dan menggunakannya. Ikuti langkah-langkah berikut:

  1. Unggah file model ke subdirektori yang sesuai dalam direktori models penyimpanan yang dipasang. Untuk informasi lebih lanjut, lihat Langkah 2: Mengunggah file.

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

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

    Klik daftar drop-down Stable Diffusion checkpoint dan pilih model target, misalnya, chilloutmix_NiPrunedFp32Fix.safetensors atau deliberate_v2.safetensors.

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

Tanpa pemasangan penyimpanan, siklus hidup file sama dengan layanan. Jika layanan dihentikan, direstart, atau dihapus, semua file akan dihapus. Oleh karena itu, kami merekomendasikan agar Anda memasang penyimpanan eksternal, seperti OSS atau NAS, untuk menyimpan file-file tersebut.

T: Apa yang harus saya lakukan jika layanan macet dalam waktu lama?

  • Anda dapat mencoba menyelesaikan masalah dengan membuka kembali antarmuka Stable Diffusion WebUI atau merestart layanan EAS.

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

    • Klik image > Restart Service di kolom Actions layanan target untuk merestart layanan EAS.

  • Jika merestart tidak menyelesaikan masalah setelah waktu yang lama, kemungkinan besar karena layanan perlu mengunduh konten, seperti model atau plugin, dari Internet. Secara default, EAS tidak memiliki akses jaringan publik. Citra runtime dapat dijalankan secara offline, dan pemasangan model tidak memerlukan koneksi jaringan. Namun, beberapa plugin bergantung pada pengunduhan konten dari Internet. Dalam kasus ini, kami merekomendasikan agar Anda memeriksa log untuk menemukan jalur unduhan model atau plugin, mengunduhnya secara manual, dan mengunggahnya ke OSS untuk dipasang. Untuk informasi lebih lanjut, lihat T: Bagaimana cara memasang model dan direktori output saya sendiri?. Jika Anda tetap perlu terhubung ke Internet, lihat Mengakses sumber daya jaringan publik atau internal dari EAS untuk mengonfigurasi koneksi 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 sebelah kiri, klik User interface. Di bagian Localization di sebelah kanan, pilih None.

  3. Di bagian atas halaman Stable Diffusion WebUI, klik Apply settings lalu klik Reload UI.

    Muat ulang halaman WebUI untuk mengganti bahasa ke Bahasa Inggris.

T: Bagaimana cara mengelola sistem file saya?

Saat Anda deploy layanan edisi Standard atau Cluster WebUI, sistem secara default menambahkan parameter --filebrowser ke perintah run. Anda dapat mengelola sistem file Anda langsung melalui antarmuka WebUI. Ikuti langkah-langkah berikut:

  1. Klik nama layanan target untuk membuka halaman Overview, lalu klik Web applications di pojok kanan atas.

  2. Pada halaman Stable Diffusion WebUI, klik tab FileBrowser. Anda dapat langsung melihat sistem file atau melakukan operasi unggah dan unduh.

T: Galat: File atau direktori tidak ditemukan: 'data-oss/data-********.png'

  1. Periksa versi deploy. Jika merupakan edisi API (image x.x-api) atau edisi Cluster WebUI (image x.x-cluster-webui), Anda harus mengonfigurasi model.

  2. Periksa jalur pemasangan. Periksa apakah perintah run berisi parameter --data-dir dan pastikan jalurnya konsisten dengan jalur pemasangan OSS.

    Misalnya, atur baik jalur pemasangan OSS maupun parameter --data-dir dalam perintah run ke /code/stable-diffusion-webui/data. Contoh lengkap perintah run:

    ./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api --filebrowser --cluster-status --data-dir /code/stable-diffusion-webui/data

T: Saya tidak dapat mengakses halaman WebUI

Periksa versi deploy layanan. Edisi API tidak mendukung WebUI. Jika Anda menggunakan deploy kustom, image x.x-api adalah untuk edisi API.

Lampiran

Parameter yang dapat dikonfigurasi saat startup layanan

  • Parameter umum

    Parameter umum

    Deskripsi fitur

    Rekomendasi

    --blade

    Mengaktifkan akselerasi PAI-Blade untuk mempercepat pembangkitan image.

    Kami merekomendasikan agar Anda mengaktifkannya.

    --filebrowser

    Plugin yang memungkinkan Anda mengunggah dan mengunduh model atau image.

    Diaktifkan secara default.

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

    Jalur yang digunakan untuk pemasangan penyimpanan persisten.

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

    --api

    Mode panggilan API untuk WebUI.

    Diaktifkan secara default.

    --enable-nsfw-censor

    Secara default dinonaktifkan. Jika Anda memiliki persyaratan keamanan dan kepatuhan, Anda dapat mengaktifkan fitur deteksi pornografi.

    Sesuaikan sesuai kebutuhan.

    --always-hide-tabs

    Menentukan bahwa beberapa tab disembunyikan.

    Sesuaikan sesuai kebutuhan.

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

    Menyimpan cache model besar Stable Diffusion di memori.

    Tidak ada.

  • Parameter edisi kluster

    Catatan

    Model checkpoint (ckpt) dan ControlNet LLM secara otomatis memuat file dari direktori publik dan file kustom Anda.

    Parameter edisi kluster

    Deskripsi fitur

    Rekomendasi

    --lora-dir

    Menentukan 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 akan memuat model LoRA dari direktori publik tersebut dan model LoRA di folder mereka sendiri.

    --vae-dir

    Menentukan 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 akan memuat model VAE dari direktori publik tersebut.

    --gfpgan-dir

    Menentukan 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 akan memuat model GFPGAN dari direktori publik tersebut.

    --embeddings-dir

    Menentukan 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 akan memuat model embeddings dari direktori publik tersebut.

    --hypernetwork-dir

    Menentukan 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 akan memuat model hypernetwork dari direktori publik tersebut.

    --root-extensions

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

    Gunakan parameter ini saat Anda perlu menginstal atau mengelola plugin secara terpusat.

Parameter tambahan yang dapat dikonfigurasi untuk operasi API

EAS mendukung fitur-fitur baru berdasarkan API Stable Diffusion WebUI native. Selain parameter yang diperlukan, Anda dapat menambahkan parameter opsional ke operasi API untuk mengimplementasikan lebih banyak fitur atau kebutuhan kustom.

  • Anda dapat menentukan model Stable Diffusion, model VAE, dan direktori penyimpanan.

  • Anda dapat memasukkan parameter menggunakan URL dan menerima kode status yang sesuai.

  • Image yang dihasilkan dan image ControlNet yang sesuai dapat diakses menggunakan URL.

Berikut adalah contoh penggunaan.

Contoh permintaan dan respons teks-ke-image

Berikut adalah contoh format data permintaan.

{
      "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"
  }

Tabel berikut menjelaskan parameter utama.

  • sd_model_checkpoint: Menentukan checkpoint model Stable Diffusion, yang memungkinkan pergantian otomatis ke model besar.

  • sd_vae: Menentukan model VAE.

  • save_dir: Menentukan jalur penyimpanan untuk image yang dihasilkan.

Berikut adalah contoh permintaan API sinkron.

# Panggil operasi API sinkron untuk memvalidasi 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"
  }'

Berikut adalah contoh format data respons:

{
  "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": ""
}

Berikut adalah contoh permintaan API asinkron:

# 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 image-ke-image

Berikut adalah contoh format data permintaan.

{
    "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, # Tambahan
    "sampler_name": "DDIM", # Metode sampling
    "cfg_scale": 7.5, # Skala CFG
    "restore_faces": true, # Pulihkan wajah
    "tiling": false, # Pengubinan
    "init_images": [], # string base64 image, default None
    "mask_blur": 4, # Blur 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, maksimum=256, step=4, nilai=32, Padding hanya dimask, piksel
    #"image_cfg_scale": 1, # diubah ukurannya berdasarkan skala
    #"script_name": "Outpainting mk2", # Nama skrip yang digunakan. Jangan tambahkan bidang ini jika tidak menggunakan skrip.
    #"script_args": ["Outpainting", 128, 8, ["left", "right", "up", "down"], 1, 0.05]  # Parameter untuk skrip, sesuai dengan: bidang tetap, piksel, mask_blur, arah, noise_q, variasi warna
}

Berikut adalah contoh format data respons.

{
    "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":""
}

Format data ControlNet untuk teks-ke-image

Berikut adalah format data permintaan.

{
    "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"
}

Berikut adalah contoh format data respons.

{
    "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