thehocinesaad/stability-php

Stability PHP 是一个综合的 PHP API 客户端,旨在与 Stability AI API 无缝交互。

v0.1.0 2023-11-16 20:06 UTC

This package is auto-updated.

Last update: 2024-09-16 22:48:14 UTC


README

Stability PHP example code.

Stability PHP 是一个 PHP API 客户端,为开发者提供直观且高效的接口,以便与 Stability AI API 无缝交互。

目录

安装

您可以通过 composer 安装此包

composer require thehocinesaad/stability-php

之后,您就可以开始使用了

$client = Stability::client('YOUR_API_KEY');

$response = $client->generations()->textToImage('stable-diffusion-xl-1024-v1-0', [
    'text_prompts' => [
        [
            'text' => 'A lighthouse on a cliff',
            'weight' => 0.5
        ],
    ],
    'samples' => 1,
]);

dd($response['artifacts'][0]['base64']);
// "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zUAAM8MmNhQ..." - Image encoded in base64.

您可以在请求中添加额外的 HTTP 头部(API 支持)

$client = Stability::client(YOUR_API_KEY')
    ->withAcceptHeader('image/png')
    ->withOrganizationHeader('org-123456')
    ->withStabilityClientIdHeader('my-great-plugin')
    ->withStabilityClientVersionHeader('1.2.1');

用法

用户

管理您的 Stability.ai 账户,并查看账户/组织余额。

账户

获取与提供的 API 密钥关联的账户信息。

$response = $client->user()->account();

$response['email']; // 'your@email.com'
$response['id']; // 'user-xxxxxxxxxxxxxxx'
// ...

余额

获取与 API 密钥关联的账户/组织的信用余额。

$response = $client->user()->balance();

$response['credits']; // 1000000 😍

引擎

列出可用的引擎。

列表

列出您的组织/用户可用的所有引擎。

$response = $client->engines()->list();
// Returns an array of available engines.

foreach ($response as $engine) {
    $engine['description']; // 'Stability-AI Stable Diffusion XL v1.0'
    $engine['id']; // 'stable-diffusion-xl-1024-v1-0'
    $engine['name']; // 'Stable Diffusion XL v1.0'
    $engine['type']; // 'PICTURE'
}

生成

从文本、现有图像或两者中生成图像。

文本到图像

从文本提示生成新图像。

$response = $client->generations()->textToImage('stable-diffusion-xl-1024-v1-0', [
    'text_prompts' => [
        [
            'text' => 'A lighthouse on a cliff',
        ],
    ],
    'cfg_scale' => 7,
    'height' => 1024,
    'width' => 1024,
    'steps' => 30,
    'samples' => 2,
]);

foreach ($response['artifacts'] as $result) {
    $result['base64']; // 'iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAA...'
    $result['seed']; // 6311659811
    $result['finishReason']; // 'SUCCESS'
}

图像到图像

根据文本提示修改图像。

$response = $client->generations()->imageToImage(stable-diffusion-xl-1024-v1-0', [
    'init_image' => 'init_image.png',
    'init_image_mode' => 'IMAGE_STRENGTH',
    'image_strength' => '0.35',
    'text_prompts' => [
        [
            'text' => 'A lighthouse on a cliff',
        ],
    ],
    'cfg_scale' => 7,
    'steps' => 10,
    'samples' => 2,
]);

foreach ($response['artifacts'] as $result) {
    $result['base64']; // 'iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAA...'
    $result['seed']; // 4285698893
    $result['finishReason']; // 'SUCCESS'
}

图像到图像升级

创建输入图像的更高分辨率版本。

$response = $client->generations()->imageToImageUpscale('esrgan-v1-x2plus', [
    'image' => 'image.png',
    'width' => '1024',
]);

$response['artifacts'][0]['base64']; // 'iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAD...'
$response['artifacts'][0]['seed']; // 0
$response['artifacts'][0]['finishReason']; // 'SUCCESS'

图像到图像遮罩

使用遮罩选择性地修改图像的某些部分。

$response = $client->generations()->imageToImageMasking('stable-inpainting-512-v2-0', [
    'mask_source' => 'MASK_IMAGE_BLACK',
    'init_image' => 'init_image.png',
    'mask_image' => 'mask_image.png',
    'text_prompts' => [
        [
            'text' => 'A lighthouse on a cliff',
        ],
    ],
    'cfg_scale' => 7,
    'clip_guidance_preset' => 'FAST_BLUE',
    'steps' => 10,
    'samples' => 2,
]);

foreach ($response['artifacts'] as $result) {
    $result['base64']; // 'iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7...'
    $result['seed']; // 96898585
    $result['finishReason']; // 'SUCCESS'
}

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件