Tüm Ürünler
Search
Belge Merkezi

Platform For AI:SDWebUI ile yapay zeka sanatı dağıtma

Son Güncelleme:Oct 04, 2026

Stable Diffusion (SD), yüksek kaliteli ve yüksek çözünürlüklü görüntüler oluşturabilen güçlü bir görüntü oluşturma modelidir. Stable Diffusion WebUI, zengin bir görüntü oluşturma araç seti sunan Gradio tabanlı görsel bir kullanıcı arayüzü sağlar. Elastic Algorithm Service (EAS), senaryo tabanlı dağıtımı destekler. Yalnızca birkaç parametre yapılandırarak SD WebUI hizmetini tek tıkla dağıtabilirsiniz.

Özellikler ve avantajlar

Kendi kendine yönetilen hizmetlere kıyasla PAI-EAS aşağıdaki avantajları sunar:

  • Tek tıkla dağıtım: Önceden yapılandırılmış çalışma zamanı görüntüleri tüm bağımlılıkları içerir.

  • GPU otomatik ölçeklendirme: Talebe bağlı olarak GPU kaynaklarını dinamik şekilde ayarlar.

  • Kurumsal düzeyde özellikler: Çoklu kullanıcı izolasyonu, GPU paylaşımı ve maliyet tahsisi.

  • Entegre dosya yönetimi: FileBrowser uzantısı, modellerin yüklenmesini kolaylaştırır.

Uygun sürümü seçin

Sürüm

Senaryolar

Çağrı yöntemi

Faturalama

Standart Sürüm

Kişisel test ve prototip geliştirme

WebUI, API çağrıları (senkron)

Dağıtım yapılandırmasına göre ücretlendirilirsiniz. Daha fazla bilgi için bkz. EAS Faturalaması.

API sürümü

Üretim ortamı API'leri, yüksek eşzamanlılık senaryoları

API çağrıları (senkron ve asenkron)

Küme WebUI sürümü

Takım iş birliği, tasarım ekipleri

WebUI

Serverless sürüm

Not

Bu sürüm yalnızca Çin (Şanghay) ve Çin (Hangzhou) bölgelerinde kullanılabilir.

Esnek iş yükleri, maliyet optimizasyonu

WebUI

Hizmet dağıtımı ücretsizdir. Yalnızca görüntü oluşturma süresi için ücretlendirilirsiniz.

Hızlı Başlangıç: Senaryo tabanlı şablon kullanarak yapay zeka sanatı oluşturma hizmetlerini dağıtma

  1. PAI konsolu üzerinde oturum açın. Sayfanın üst kısmından bir bölge seçin. Ardından istenen çalışma alanını seçin ve Enter Elastic Algorithm Service (EAS) seçeneğine tıklayın.

  2. Elastic Algorithm Service (EAS) sayfasında Deploy Service öğesine tıklayın. Ardından, Scenario-based Model Deployment alanında AI Painting - SD Web UI Deployment seçeneğine tıklayın.

  3. Aşağıdaki anahtar parametreleri yapılandırın:

    • Version: Standart Sürüm'ü seçin.

    • Model Settings: Model dosyalarını ve çıkarım tarafından oluşturulan görüntüleri depolamak için OSS ve bir paket yolunu seçin.

    • Instance Type: Bir GPU türü seçin. En maliyet etkin seçenek olduğu için önerilen teknik özellik ml.gu7i.c16m60.1-gu30 değeridir.

  4. Parametreleri yapılandırdıktan sonra Deploy seçeneğine tıklayın. Hizmet durumu Running durumuna geçene kadar 5 ila 10 dakika bekleyin.

Hizmeti çağırma

WebUI kullanarak çağırma

Standart, Küme WebUI ve Serverless sürümlerinin hizmetlerini çağırmak için WebUI'yi kullanabilirsiniz. Aşağıdaki adımları izleyin:

  1. Hedef hizmet adına tıklayarak Overview sayfasına gidin ve ardından sağ üst köşede bulunan Web applications seçeneğine tıklayın.

  2. Model çıkarımı doğrulaması gerçekleştirin.

    Stable Diffusion WebUI sayfasında, Text-to-Image sekmesinde cute dog gibi pozitif bir istem girin. Ardından, yapay zeka sanatını oluşturmak için Generate seçeneğine tıklayın.

Senkron API çağrıları kullanarak çağırma

Standart Sürüm veya API sürümü hizmeti dağıttıktan sonra senkron API istekleri gönderebilirsiniz.

Uç nokta bilgilerini sorgulama

  1. Hizmet dağıtıldıktan sonra hizmet adına tıklayarak Overview sayfasını açın.

  2. Basic Information alanında View Endpoint Information seçeneğine tıklayın.

  3. Invocation Information sayfasında genel hizmet uç noktasını ve belirteci edinin.

Çağrı örnekleri

Görüntüleri yerel bir cihaza kaydetme

import requests
import base64
from PIL import Image
import io

# IMPORTANT: Remove the trailing slash (/) from the endpoint URL.
SERVICE_URL = "<your_endpoint_url>"
TOKEN = "<your_token>"

def generate_image(prompt: str) -> Image.Image:
    """Generates an image based on a text 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 the first image
    img_data = response.json()["images"][0]
    return Image.open(io.BytesIO(base64.b64decode(img_data)))

# Generate and save the image
image = generate_image("a serene mountain landscape at sunset")
image.save("output.png")

Görüntüleri OSS'e kaydetme

import requests

# IMPORTANT: Remove the trailing slash (/) from the endpoint URL.
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}
)

# Get the path of the saved image
data = response.json()

# This is the mount_path corresponding to the default mounted OSS folder when you deploy the EAS service.
mount_path = "/code/stable-diffusion-webui/data"

# This is the OSS bucket address you selected when you deployed the EAS service.
oss_url = "oss://examplebucket/data-oss"

for idx, img_path in enumerate(data['parameters']['image_url'].split(',')):
    # Get the actual address of the generated image in OSS.
    img_oss_path = img_path.replace(mount_path, oss_url)
    print(img_oss_path)

İstek verilerinde LoRA ve ControlNet veri formatlarını da kullanabilirsiniz.

İstek verilerinde LoRA model yapılandırması kullanma

Bir hizmet isteği gönderirken, bir LoRA modeli eklemek için istek gövdesine <lora:yaeMikoRealistic_Genshin:1000> ekleyebilirsiniz. Daha fazla bilgi için bkz. Lora.

Aşağıdaki örnekte bir istek gövdesi yapılandırması gösterilmektedir.

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

İstek verilerinde ControlNet veri formatını kullanma

API istek verilerinde ControlNet veri formatını kullanmak, yaygın görüntü dönüşümleri gerçekleştirmenize olanak tanır. Bunun nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. Metinden görüntüye ControlNet veri formatı.

Asenkron API çağrıları kullanarak çağırma

Bir API sürümü hizmeti dağıttıktan sonra asenkron API istekleri gönderebilirsiniz. Asenkron modda, istemcinin sonucu beklemesi gerekmez. Bunun yerine, sonuçlar sunucu tarafından bir abonelik aracılığıyla itilir. Aşağıdaki adımları izleyin:

Çağrı Bilgilerini Sorgulama

  1. Hizmet başarıyla dağıtıldıktan sonra hizmet adına tıklayarak Overview sayfasına gidin.

  2. Basic Information alanında View Endpoint Information seçeneğine tıklayın.

  3. Invocation Information sayfasında, genel çağrı adresini ve belirteci edinmek için Asynchronous Invocation sekmesine tıklayın.

İstek gönderme

İstemci, asenkron bir API işlemi aracılığıyla sunucu tarafına bir istek gönderir.

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"Task enqueued: {response.json()}")
Önemli
  • Asenkron kuyruk, girdi isteklerinin ve çıktı sonuçlarının boyutu konusunda sınırlamalara sahiptir; bu sınır genellikle 8 KB'ı aşmamalıdır. Bu nedenle, istek gönderirken aşağıdaki iki koşulu karşılamanız gerekir:

    • İstek verileri görüntü içeriyorsa, görüntü bilgilerini aktarmak için URL'ler kullanmanızı öneririz. Stable Diffusion WebUI bu görüntü verilerini otomatik olarak indirir ve ayrıştırır.

    • Dönen sonucun orijinal görüntü verilerini içermemesini sağlamak için, oluşturulan görüntülerin kaydetme yolunu belirtmek üzere save_dir kullanmanızı öneririz. Daha fazla bilgi için bkz. API işlemleri için yapılandırılabilen ek parametreler.

Abonelik sonuçları

İstemci, bir abonelik aracılığıyla sonuçları alır. Sunucu tarafı isteği işledikten sonra sonucu otomatik olarak istemciye iter.

from eas_prediction import QueueClient

# You must adjust the endpoint URL format to match the example: 112231234124214.cn-hangzhou.pai-eas.aliyuncs.com
SERVICE_URL = "<your_endpoint_url>"
TOKEN = "<your_token>"
# The service name configured when the service was created
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"Task {result.tags.get('task_id')} completed")
    print(f"Image URL: {result.data}")

EAS, yerel Stable Diffusion WebUI API işlemlerine dayalı yeni özellikleri destekler. Daha fazla özellik uygulamak için istek verilerine isteğe bağlı parametreler ekleyebilirsiniz. Daha fazla bilgi için bkz. API işlemleri için yapılandırılabilen ek parametreler.

Gelişmiş dağıtım seçenekleri

Özel dağıtım

Standart, API ve Küme WebUI sürümü hizmetlerini dağıtabilirsiniz. Aşağıdaki adımları izleyin:

  1. PAI konsolu üzerinde oturum açın. Sayfanın üst kısmından bir bölge seçin. Ardından istenen çalışma alanını seçin ve Enter Elastic Algorithm Service (EAS) seçeneğine tıklayın.

  2. Deploy Service seçeneğine tıklayın. Inference Service bölümünde, Custom Model Deployment bölümündeki Custom Deployment seçeneğine tıklayın.

  3. Custom Deployment sayfasında aşağıdaki anahtar parametreleri yapılandırın.

    Parametre

    Açıklama

    Environment Information

    Deployment Method

    • Standart Sürüm ve Küme Sürümü WebUI hizmetlerini dağıtırken Image-based Deployment seçeneğini belirleyin ve Enable Web App seçeneğini işaretleyin.

    • Bir API sürümü hizmeti dağıtırken Image-based Deployment seçeneğini belirleyin ve Asynchronous Services seçeneğini işaretleyin.

    Image Configuration

    Alibaba Cloud Image listesinde stable-diffusion-webui seçeneğini belirleyin ve görüntü adı için en son sürümü seçin:

    • x.x-standard: Standart Sürüm.

    • x.x-api: API sürümü.

    • x.x-cluster-webui: Küme WebUI sürümü.

    Not
    • Hızlı sürüm yinelemeleri nedeniyle dağıtım sırasında en son görüntü sürümünü seçin.

    • Birden çok kullanıcının aynı anda tek bir Stable Diffusion WebUI kullanarak görüntü oluşturması gerekiyorsa x.x-cluster-webui sürümünü seçin.

    • Her sürümün senaryoları hakkında daha fazla bilgi için bkz. Uygun sürümü seçin.

    Storage Mount

    Model dosyalarını ve oluşturulan görüntüleri depolamak için kullanılır.

    Önemli

    API ve Küme sürümleri için depolama bağlamalarını yapılandırmanız gerekir.

    Aşağıdaki türler desteklenir:

    • OSS

      • Uri: OSS yolunu mevcut bir OSS paketinin yoluna ayarlayın.

      • Mount Path: /code/stable-diffusion-webui/data olarak ayarlayın.

    • NAS

      • File System: Mevcut bir NAS dosya sistemi seçin.

      • Mount Target: Mevcut bir bağlama hedefi seçin.

      • File System Path: / olarak ayarlayın.

      • Mount Path: /code/stable-diffusion-webui/data olarak ayarlayın.

    • PAI Model

      • PAI Model: PAI modelini ve model sürümünü seçin.

      • Mount Path: /code/stable-diffusion-webui/data olarak ayarlayın.

    Bu konuda örnek olarak bir OSS bağlaması kullanılmaktadır.

    Command to Run

    Yukarıdaki yapılandırmaları tamamladıktan sonra sistem ilgili çalıştırma komutunu otomatik olarak oluşturur.

    • Depolamayı bağladıktan sonra, verileri hizmet örneğinin belirtilen yoluna bağlamak için çalıştırma komutuna --data-dir parametresini eklemeniz gerekir. Yol, bağlama yolu ile aynı olmalıdır; örneğin --data-dir /code/stable-diffusion-webui/data.

    • (İsteğe bağlı) Çıkarım hızlandırmayı etkinleştirmek ve görüntü oluşturma hızını artırmak için çalıştırma komutuna --blade veya --xformers parametresini de ekleyebilirsiniz. Parametre yapılandırmaları hakkında daha fazla bilgi için bkz. Hizmet başlatma sırasında yapılandırılabilen parametreler.

    Resource Information

    Deployment

    Bir GPU türü seçin. Resource Specification için önerilen değer ml.gu7i.c16m60.1-gu30 (en maliyet etkin) değeridir.

    Service Access

    VPC

    Depolama Bağlama için NAS seçtiğinizde, sistem NAS dosya sisteminin bulunduğu VPC'ye bağlı bir VPC'yi otomatik olarak eşleştirir. Ek değişiklik yapılmasına gerek yoktur.

    vSwitch

    Security Group Name

  4. Parametreleri yapılandırdıktan sonra Deploy seçeneğine tıklayın.

JSON tabanlı dağıtım

Bir Stable Diffusion WebUI hizmetini dağıtmak için JSON tabanlı bir yöntem kullanabilirsiniz. Aşağıdaki adımlarda Standart ve API sürümlerinin nasıl dağıtılacağı gösterilmektedir:

  1. PAI konsolu üzerinde oturum açın. Sayfanın üst kısmından bir bölge seçin. Ardından istenen çalışma alanını seçin ve Enter Elastic Algorithm Service (EAS) seçeneğine tıklayın.

  2. Elastic Algorithm Service (EAS) sayfasında Deploy Service seçeneğine tıklayın. Custom Model Deployment bölümünde JSON Deployment seçeneğine tıklayın.

  3. JSON Deployment sayfasındaki düzenleyicide aşağıdaki içeriği JSON formatında yapılandırın.

    Standart Sürüm hizmetini dağıtma

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

    Aşağıdaki tabloda anahtar parametreler açıklanmaktadır.

    Parametre

    Gerekli

    Açıklama

    metadata.name

    Evet

    Model hizmetinin özel adı. Ad, aynı bölge içinde benzersiz olmalıdır.

    containers.image

    Evet

    <region> ifadesini geçerli bölge kimliğiyle değiştirin. Örneğin, Çin (Şanghay) için kimlik cn-shanghai'dir. Bölge kimliklerini sorgulama hakkında daha fazla bilgi için bkz. Bölgeler ve alanlar.

    storage

    Hayır

    Aşağıdaki iki bağlama yöntemi desteklenir. Bunlardan birini seçebilirsiniz:

    • OSS: Verileri yüklemek ve indirmek için OSS kullanmak daha kolaydır ve oluşturulan görüntüler için genel erişim URL'leri oluşturabilir. Ancak, model değiştirme ve görüntü kaydetme işlemleri NAS'e göre daha yavaştır. storage.oss.path değerini oluşturulmuş bir OSS paketinin yoluna ayarlamanız gerekir.

    • NAS: NAS bağlaması kullanmak, model değiştirmeyi ve görüntü kaydetmeyi hızlandırır. storage.nfs.server değerini oluşturulmuş bir NAS dosya sistemine ayarlamanız gerekir.

    Bu konuda örnek olarak bir OSS bağlaması kullanılmaktadır.

    cloud.networking

    Hayır

    Depolama için NAS bağlaması kullanırken, vpc_id (VPC Kimliği), vswitch_id (vSwitch Kimliği) ve security_group_id (güvenlik grubu kimliği) dahil olmak üzere bir VPC yapılandırmanız gerekir. Yapılandırılan VPC, Genel Amaçlı NAS dosya sistemi için olanla aynı olmalıdır.

    API sürümü hizmetini dağıtma

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

    API sürümü hizmeti, Standart Sürüm hizmeti yapılandırmasına kıyasla aşağıdaki yapılandırma değişikliklerine sahiptir. Diğer parametre yapılandırmaları Standart Sürüm hizmetiyle aynıdır.

    Parametre

    Açıklama

    Aşağıdaki parametreleri silin:

    metadata.enable_webservice

    Web hizmetinin etkin olmadığını belirtmek için bu parametreyi silin.

    containers.script

    Hizmet başlatmayı hızlandırmak için containers.script yapılandırmasından --filebrowser öğesini silin.

    Aşağıdaki parametreleri ekleyin:

    metadata.type

    Asenkron hizmeti etkinleştirmek için Async olarak ayarlayın.

    metadata.rpc.worker_threads

    Tek bir örneğin aynı anda yalnızca bir isteği işlemesine izin vermek için 1 olarak ayarlayın.

    queue.max_delivery

    Bir mesaj işleme hatasından sonra yeniden denemeleri önlemek için 1 olarak ayarlayın.

    containers.script

    Başlatmayı hızlandırmak için --nowebui ve API yanıt sürelerini kaydetmek için --time-log parametrelerini containers.script yapılandırmasına ekleyin.

    Parametre yapılandırmaları hakkında daha fazla bilgi için bkz. Standart Sürüm hizmetini dağıtma.

  4. Deploy seçeneğine tıklayın.

Gelişmiş özellikler için eklentileri yükleme

Stable Diffusion WebUI için işlevselliğini genişletmek amacıyla eklentiler yükleyebilirsiniz. PAI, istemleri genişleten ve iyileştiren BeautifulPrompt eklentisi gibi önceden yüklenmiş birkaç eklenti sağlar. Aşağıdaki bölümde, bir eklentinin nasıl yükleneceği ve kullanılacağı BeautifulPrompt örneği üzerinden gösterilmektedir.

Eklenti yükleme

WebUI sayfasının Extensions sekmesinde eklentileri görüntüleyebilir ve yükleyebilirsiniz. Aşağıdaki adımları izleyin:

  1. Hedef hizmet adına tıklayarak Overview sayfasına gidin ve ardından sağ üst köşede bulunan Web applications seçeneğine tıklayın.

  2. WebUI sayfasında, Extensions sekmesinde BeautifulPrompt seçeneğinin işaretli olup olmadığını kontrol edin. İşaretli değilse, eklentiyi seçin ve BeautifulPrompt eklentisini yeniden yüklemek için Apply and restart UI seçeneğine tıklayın.

    Eklentiyi yüklerken WebUI sayfası otomatik olarak yeniden başlar. Yeniden yüklendikten sonra çıkarım doğrulaması gerçekleştirebilirsiniz.

Çıkarım doğrulaması için eklentiyi kullanma

  1. BeautifulPrompt sekmesine geçin, metin kutusuna basit bir istem girin ve daha ayrıntılı bir istem oluşturmak için Generate seçeneğine tıklayın.

    Aşağıdaki oluşturma parametrelerini yapılandırabilirsiniz:

    • Top K: 50

    • Top P: 0,9

    • Temperature: 0,9

    • Repetition penalty: 1,05

    • Max new tokens: 384

    • Num prompts: 5

    Generate seçeneğine tıkladıktan sonra, sağ taraftaki sonuç paneli birden çok genişletilmiş Stable Diffusion istemi çıktılar. Her sonucun sağındaki to txt2img ve to img2img düğmeleri, istemi doğrudan ilgili özellik sayfasına göndermenize olanak tanır.

    PAI, birden çok istem oluşturma modeli sağlar ve her model biraz farklı istemler oluşturur. Modeller şunlardır:

    • pai-bloom-1b1-text2prompt-sd-v2: Karmaşık sahneler için istemler oluşturmada mükemmeldir.

    • pai-bloom-1b1-text2prompt-sd: Tek bir nesneyi tanımlayan istemler oluşturur.

    İhtiyacınıza göre uygun modeli seçerek istemler oluşturabilirsiniz. Aynı zamanda negatif istemler oluşturmak için Negative prompt onay kutusunu da seçebilirsiniz.

  2. Kullanmak istediğiniz istemi seçin ve istemin sağındaki to txt2img seçeneğine tıklayın.

    Sayfa otomatik olarak Text-to-Image sekmesine geçer ve istem alanını doldurur.

  3. WebUI sayfasının sağ tarafında bir görüntü oluşturmak için Generate seçeneğine tıklayın.

    Geliştirilmiş istem, masterpiece, best quality ve ultra-detailed gibi zengin görüntü kalitesi ve kompozisyon tanımlayıcıları içerir; bu da yüksek kaliteli anime tarzı görüntüler oluşturmanıza yardımcı olur.

    BeautifulPrompt eklentisini kullanmamaya kıyasla, bunu kullanmak oluşturulan görüntülerin estetik kalitesini artırabilir ve daha fazla ayrıntı eklemenize yardımcı olabilir. Aşağıdaki tabloda, diğer senaryolar için BeautifulPrompt eklentisinin kullanıldığı ve kullanılmadığı durumların sonuç karşılaştırması gösterilmektedir.


    Giriş İstemi


    BeautifulPrompt Olmadan Sonuç


    BeautifulPrompt ile Sonuç


    a cat

    image.png

    image.png


    a giant tiger

    image.png

    image.png

SSS

S: Kendi modellerimi ve çıktı dizinlerimi nasıl bağlarım?

Hizmet dağıtıldıktan sonra sistem, bağlanan OSS veya NAS depolama alanında otomatik olarak aşağıdaki dizin yapısını oluşturur.

  • api_rec/

  • configs/

  • extensions/

  • images/

  • models/

  • progress_images/

  • requests_folder/

  • cache.json

  • params.txt

  • ui-config.json

Burada:

  • models: Bu dizin model dosyalarını depolamak için kullanılır.

  • outputs: Bir çıkarım isteği başlatıldıktan sonra sistem, API kodundaki önceden ayarlanmış yapılandırmaya göre sonuç dosyalarını otomatik olarak bu dizine çıktılar.

Açık kaynak topluluklarından indirilen modelleri veya kendi eğittiğiniz LoRA veya Stable Diffusion modellerini yüklemek ve kullanmak üzere belirtilen dizinlerde saklayabilirsiniz. Aşağıdaki adımları izleyin:

  1. Model dosyasını, bağlanan depolamanın models dizini altındaki ilgili alt dizine yükleyin. Daha fazla bilgi için bkz. Adım 2: Dosyaları yükleme.

  2. Elastic Algorithm Service (EAS) sayfasında, hedef hizmetin Actions sütununda image > Restart Service seçeneğine tıklayın. Değişiklikler hizmet başarıyla yeniden başlatıldıktan sonra etkili olur.

  3. Stable Diffusion WebUI sayfasında modeli değiştirin ve model çıkarımı doğrulaması gerçekleştirin.

    Stable Diffusion checkpoint açılır listesine tıklayın ve hedef modeli seçin; örneğin chilloutmix_NiPrunedFp32Fix.safetensors veya deliberate_v2.safetensors.

S: Yapılandırma değişmeden kalırsa, indirilen eklentiler ve yüklenen dosyalar örnekte kaydedilir mi?

Bir depolama bağlaması olmadan, dosyaların yaşam döngüsü hizmetle aynıdır. Hizmet durdurulursa, yeniden başlatılırsa veya silinirse tüm dosyalar silinir. Bu nedenle, bu dosyaları kaydetmek için OSS veya NAS gibi harici depolama alanı bağlamanızı öneririz.

S: Hizmet uzun süre takılı kalırsa ne yapmalıyım?

  • Sorunu çözmek için öncelikle Stable Diffusion WebUI arayüzünü yeniden açmayı veya EAS hizmetini yeniden başlatmayı deneyebilirsiniz.

    • Hedef hizmete tıklayarak Overview sayfasına gidin ve sağ üst köşede bulunan Web applications seçeneğine tıklayarak Stable Diffusion WebUI'yi yeniden açın.

    • Hedef hizmetin Actions sütununda image > Restart Service seçeneğine tıklayarak EAS hizmetini yeniden başlatın.

  • Yeniden başlatma sorunu uzun bir süre sonra çözmezse, bunun nedeni büyük olasılıkla hizmetin modeller veya eklentiler gibi içerikleri İnternet'ten indirmesi gerekliliğidir. Varsayılan olarak EAS genel ağ erişimine sahip değildir. Çalışma zamanı görüntüleri çevrimdışı başlatılabilir ve modellerin bağlanması ağ bağlantısı gerektirmez. Ancak, bazı eklentiler İnternet'ten içerik indirmeye bağlıdır. Bu durumda, günlükleri kontrol ederek modelin veya eklentinin indirme yolunu bulmanızı, manuel olarak indirmenizi ve bağlamak üzere OSS'e yüklemenizi öneririz. Daha fazla bilgi için bkz. S: Kendi modellerimi ve çıktı dizinlerimi nasıl bağlarım?. Hala İnternet'e bağlanmanız gerekiyorsa, genel ağ bağlantısı yapılandırmak için bkz. EAS'ten genel veya iç ağ kaynaklarına erişim.

S: WebUI sayfasının varsayılan dilini İngilizce olarak nasıl değiştiririm?

  1. Stable Diffusion WebUI sayfasında Settings seçeneğine tıklayın.

  2. Sol gezinme bölmesinde User interface seçeneğine tıklayın. Sağ taraftaki Localization bölümünde None seçeneğini belirleyin.

  3. Stable Diffusion WebUI sayfasının üst kısmında Apply settings seçeneğine tıklayın ve ardından Reload UI seçeneğine tıklayın.

    Dili İngilizce olarak değiştirmek için WebUI sayfasını yenileyin.

S: Dosya sistemimi nasıl yönetirim?

Standart veya Küme WebUI sürümü hizmeti dağıttığınızda, sistem varsayılan olarak çalıştırma komutuna --filebrowser parametresini ekler. Dosya sisteminizi doğrudan WebUI arayüzü üzerinden yönetebilirsiniz. Aşağıdaki adımları izleyin:

  1. Hedef hizmet adına tıklayarak Overview sayfasına gidin ve ardından sağ üst köşede bulunan Web applications seçeneğine tıklayın.

  2. Stable Diffusion WebUI sayfasında FileBrowser sekmesine tıklayın. Dosya sistemini doğrudan görüntüleyebilir veya yükleme ve indirme işlemleri gerçekleştirebilirsiniz.

S: Hata: No such file or directory: 'data-oss/data-.png'

  1. Dağıtım sürümünü kontrol edin. API sürümü (görüntü x.x-api) veya Küme WebUI sürümü (görüntü x.x-cluster-webui) ise modeli yapılandırmanız gerekir.

  2. Bağlama yolunu kontrol edin. Çalıştırma komutunun --data-dir parametresini içerip içermediğini kontrol edin ve yolunun OSS bağlama yoluyla tutarlı olduğundan emin olun.

    Örneğin, hem OSS bağlama yolunu hem de çalıştırma komutundaki --data-dir parametresini /code/stable-diffusion-webui/data olarak ayarlayın. Çalıştırma komutunun tam bir örneği:

    ./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

S: WebUI sayfasına erişemiyorum

Hizmet dağıtım sürümünü kontrol edin. API sürümü WebUI'yi desteklemez. Özel bir dağıtım kullanıyorsanız, x.x-api görüntüsü API sürümü içindir.

Ek

Hizmet başlatma sırasında yapılandırılabilen parametreler

  • Yaygın parametreler


    Yaygın parametre


    Özellik açıklaması


    Öneri


    --blade


    Görüntü oluşturmayı hızlandırmak için PAI-Blade hızlandırmayı etkinleştirir.


    Bunu etkinleştirmenizi öneririz.


    --filebrowser


    Modelleri veya görüntüleri yüklemenize ve indirmenize olanak tanıyan bir eklenti.


    Varsayılan olarak etkindir.


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


    Kalıcı depolama bağlamaları için kullanılan yol.


    Kalıcı depolama bağladığınızda kullanın. Varsayılan başlangıç yolu /code/stable-diffusion-webui/ değeridir. Göreceli bir yol da kullanabilirsiniz.


    --api


    WebUI için API çağrı modu.


    Varsayılan olarak etkindir.


    --enable-nsfw-censor


    Varsayılan olarak devre dışıdır. Güvenlik ve uyumluluk gereksinimleriniz varsa pornografi algılama özelliğini etkinleştirebilirsiniz.


    Gerektiğinde ayarlayın.


    --always-hide-tabs


    Bazı sekmelerin gizleneceğini belirtir.


    Gerektiğinde ayarlayın.


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


    Stable Diffusion büyük modelini bellekte önbelleğe alır.


    Yok.

  • Küme sürümü parametreleri

    Not

    Checkpoint (ckpt) LLM'leri ve ControlNet LLM'leri dosyaları genel dizinden ve özel dosyalarınızdan otomatik olarak yükler.


    Küme sürümü parametresi


    Özellik açıklaması


    Öneri


    --lora-dir


    Genel LoRA model dizinini belirtir. Örneğin, --lora-dir /code/stable-diffusion-webui/data-oss/models/Lora.


    Varsayılan olarak yapılandırılmaz. Tüm kullanıcı LoRA dizinleri izole edilir ve yalnızca kullanıcının klasöründeki LoRA modelleri yüklenir. Belirli bir dizin belirtildiğinde, tüm kullanıcılar hem o genel dizindeki LoRA modellerini hem de kendi klasörlerindeki LoRA modellerini yükler.


    --vae-dir


    Genel VAE model dizinini belirtir. Örneğin, --vae-dir /code/stable-diffusion-webui/data-oss/models/VAE.


    Varsayılan olarak yapılandırılmaz. Tüm kullanıcı VAE dizinleri izole edilir ve yalnızca kullanıcının klasöründeki VAE modelleri yüklenir. Belirli bir dizin belirtildiğinde, tüm kullanıcılar yalnızca o genel dizindeki VAE modellerini yükler.


    --gfpgan-dir


    Genel GFPGAN model dizinini belirtir. Örneğin, --gfpgan-dir /code/stable-diffusion-webui/data-oss/models/GFPGAN.


    Varsayılan olarak yapılandırılmaz. Tüm kullanıcı GFPGAN dizinleri izole edilir ve yalnızca kullanıcının klasöründeki GFPGAN modelleri yüklenir. Belirli bir dizin belirtildiğinde, tüm kullanıcılar yalnızca o genel dizindeki GFPGAN modellerini yükler.


    --embeddings-dir


    Genel embeddings model dizinini belirtir. Örneğin, --embeddings-dir /code/stable-diffusion-webui/data-oss/embeddings.


    Varsayılan olarak yapılandırılmaz. Tüm kullanıcı embeddings dizinleri izole edilir ve yalnızca kullanıcının klasöründeki embeddings modelleri yüklenir. Belirli bir dizin belirtildiğinde, tüm kullanıcılar yalnızca o genel dizindeki embeddings modellerini yükler.


    --hypernetwork-dir


    Genel hypernetwork model dizinini belirtir. Örneğin, --hypernetwork-dir /code/stable-diffusion-webui/data-oss/models/hypernetworks.


    Varsayılan olarak yapılandırılmaz. Tüm kullanıcı hypernetwork dizinleri izole edilir ve yalnızca kullanıcının klasöründeki hypernetwork modelleri yüklenir. Belirli bir dizin belirtildiğinde, tüm kullanıcılar yalnızca o genel dizindeki hypernetwork modellerini yükler.


    --root-extensions


    Eklenti dizini paylaşılan bir dizin kullanır. Bu parametre ile tüm kullanıcılar tamamen aynı eklentileri görür.


    Eklentileri merkezi olarak yüklemeniz veya yönetmeniz gerektiğinde bu parametreyi kullanın.

API işlemleri için yapılandırılabilen ek parametreler

EAS, yerel Stable Diffusion WebUI API'sine dayalı yeni özellikleri destekler. Gerekli parametrelere ek olarak, daha fazla özellik veya özel gereksinim uygulamak için API işlemine isteğe bağlı parametreler ekleyebilirsiniz.

  • Stable Diffusion modelini, VAE modelini ve kaydetme dizinini belirtebilirsiniz.

  • Parametreleri bir URL kullanarak girebilir ve karşılık gelen durum kodlarını alabilirsiniz.

  • Oluşturulan görüntülere ve bunlara karşılık gelen ControlNet görüntülerine bir URL kullanılarak erişilebilir.

Aşağıda kullanım örnekleri verilmiştir.

Metinden görüntüye istek ve yanıt örnekleri

Aşağıda istek veri formatına bir örnek verilmiştir.

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

Aşağıdaki tabloda anahtar parametreler açıklanmaktadır.

  • sd_model_checkpoint: Büyük modele otomatik geçişi sağlayan Stable Diffusion model checkpoint'ini belirtir.

  • sd_vae: VAE modelini belirtir.

  • save_dir: Oluşturulan görüntüler için kaydetme yolunu belirtir.

Aşağıda senkron bir API isteğine örnek verilmiştir.

# Call the synchronous API operation to validate the model effect.

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

Aşağıda bir yanıt veri formatı örneği verilmiştir:

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

Aşağıda asenkron bir API isteğine örnek verilmiştir:

# Send data directly to the asynchronous queue.
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"
}'

Görüntüden görüntüye istek veri formatı örneği

Aşağıda istek veri formatına bir örnek verilmiştir.

{
    "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, # Sampling steps
    "seed": 111,   
    "subseed": 111, # Variation seed
    "subseed_strength": 0, # Variation strength
    "seed_resize_from_h": 0, # Resize seed from height
    "seed_resize_from_w": 0, # Resize seed from width
    "seed_enable_extras": false, # Extra
    "sampler_name": "DDIM", # Sampling method
    "cfg_scale": 7.5, # CFG Scale
    "restore_faces": true, # Restore faces
    "tiling": false, # Tiling
    "init_images": [], # image base64 str, default None
    "mask_blur": 4, # Mask blur
    "resize_mode": 1, # 0 just resize, 1 crop and resize, 2 resize and fill, 3 just resize
    "denoising_strength": 0.75, # Denoising strength
    "inpainting_mask_invert": 0, #int, index of ['Inpaint masked', 'Inpaint not masked'], Mask mode
    "inpainting_fill": 0, #index of ['fill', 'original', 'latent noise', 'latent nothing'], Masked content
    "inpaint_full_res": 0, # index of ["Whole picture", "Only masked"], Inpaint area
    "inpaint_full_res_padding": 32, #minimum=0, maximum=256, step=4, value=32, Only masked padding, pixels
    #"image_cfg_scale": 1, # resized by scale
    #"script_name": "Outpainting mk2", # Name of the script to use. Do not add this field if not using a script.
    #"script_args": ["Outpainting", 128, 8, ["left", "right", "up", "down"], 1, 0.05]  # Parameters for the script, corresponding to: fixed field, pixels, mask_blur, direction, noise_q, color_variation
}

Aşağıda yanıt veri formatına bir örnek verilmiştir.

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

Metinden görüntüye ControlNet veri formatı

Aşağıda istek veri formatı verilmiştir.

{
    "alwayson_scripts": {
        "sd_model_checkpoint": "deliberate_v2.safetensors", #Model name, required
        "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
                }
            ]
        }
    },
    # Main parameters
    "prompt": "girls",          
    "batch_size": 1,                                            
    "n_iter": 2,                                                 
    "width": 576, 
    "height": 576,
    "negative_prompt": "ugly, out of frame"
}

Aşağıda yanıt veri formatına bir örnek verilmiştir.

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

Referanslar