soiposervices / comfydeploy
Comfy Deploy API 的 PHP 客户端
0.2.0
2024-04-10 20:37 UTC
Requires
- php: ^8.1.0
- saloonphp/saloon: ^3.0
Requires (Dev)
- pestphp/pest: ^2.0.0
- pestphp/pest-plugin-arch: 2.x-dev
- phpstan/phpstan: ^1.9.11
This package is auto-updated.
Last update: 2024-09-02 18:23:13 UTC
README
这是一个框架无关的 PHP 客户端,用于Comfy Deploy.com,基于惊人的Saloon v3 🤠 库。您可以使用它轻松地在您的 PHP 应用程序中与机器学习模型(如 Stable Diffusion)交互。
目录
🚀 快速入门
使用 composer 安装。
composer require soiposervices/comfydeploy
创建一个新的 api 实例。
use SoipoServices\ComfyDeploy\ComfyDeploy; ... $api = new ComfyDeploy( apiToken: $_ENV['COMFY_DEPLOY_API_TOKEN'], );
然后使用它来调用您的模型(或者用 Comfy Deploy 术语说就是“创建一个工作流程”)。
$deployment_id = 'e4a14vs9-q40j-4ee2-1375-778b2je3221c'; $input = [ 'model' => 'prompt', 'postive_prompt' => 'a photo of an astronaut riding a horse on mars', 'seed' => null, ]; $data = $api->workflows()->run($deployment_id, $input); $data->run_id; // 257b65b8-ac23-49be-8aca-53d2dd8556c6
与 Laravel 一起使用
首先将您的凭据添加到您的服务配置文件中。
// config/services.php 'comfy_deploy' => [ 'api_token' => env('COMFY_DEPLOY_API_TOKEN'), ],
在服务提供者中绑定 ComfyDeploy
类。
// app/Providers/AppServiceProvider.php public function register() { $this->app->bind(ComfyDeploy::class, function () { return new ComfyDeploy( apiToken: config('services.comfy_deploy.api_token'), ); }); }
然后您可以在应用程序的任何地方使用它。
$data = app(ComfyDeploy::class)->workflows()->get($run_id);
使用 Saloon 的惊人的 响应录制 测试您的集成。
use Saloon\Laravel\Saloon; // composer require sammyjo20/saloon-laravel "^2.0" ... Saloon::fake([ MockResponse::fixture('getWorkflow'), ]); $run_id = '257b65b8-ac23-49be-8aca-53d2dd8556c6'; // The initial request will check if a fixture called "getWorkflow" // exists. Because it doesn't exist yet, the real request will be // sent and the response will be recorded to tests/Fixtures/Saloon/getWorkflow.json. $data = app(ComfyDeploy::class)->workflows()->get($run_id); // However, the next time the request is made, the fixture will // exist, and Saloon will not make the request again. $data = app(ComfyDeploy::class)->workflows()->get($run_id);
响应数据
所有响应都以数据对象的形式返回。详细信息可以通过检查以下类属性获得:
Webhooks
Comfy Deploy 允许您配置一个 webhook,在您的预测完成后被调用。要做到这一点,请在调用 run
方法之前将 withWebhook($url)
链接到您的 api 实例。例如
$api->workflows()->withWebhook('https://www.example.com/webhook')->run($deployment_id, $input); $data->run_id; // 257b65b8-ac23-49be-8aca-53d2dd8556c6
可用的工作流程方法
get()
用于获取现有工作流程的详细信息。
use SoipoServices\ComfyDeploy\Data\GetWorkflowData; ... $run_id = '257b65b8-ac23-49be-8aca-53d2dd8556c6' /* @var GetWorkflowData $data */ $data = $api->workflows()->get($run_id); $data->id;
run()
用于通过 deployment_id 运行工作流程。返回 RunWorkflowData 对象。
use SoipoServices\ComfyDeploy\Data\RunWorkflowData ... $deployment_id = 'e4a14vs9-q40j-4ee2-1375-778b2je3221c'; $input = [ 'postive_prompt' => 'a photo of an astronaut riding a horse on mars', ]; /* @var RunWorkflowData $data */ $data = $api->workflows() ->withWebhook('https://www.example.com/webhook') // optional ->run($deployment_id, $input); $data->run_id; // 257b65b8-ac23-49be-8aca-53d2dd8556c6
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件。