thehocinesaad / stability-php
Stability PHP 是一个综合的 PHP API 客户端,旨在与 Stability AI API 无缝交互。
v0.1.0
2023-11-16 20:06 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- laravel/pint: ^1.13
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.0
- symfony/var-dumper: ^6.3
README
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)。有关更多信息,请参阅 许可证文件。