我有可以完美工作的curl命令(通过稳定API使用img2img):

curl --request POST 'https://api.stability.ai/v1/generation/stable-diffusion-xl-1024-v1-0/image-to-image' \
    --header 'Content-Type: multipart/form-data' \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer somesecrettoken' \
    --form 'init_image=@"/full/path/to/init_image.png"' \
    --form 'text_prompts[0][text]=Beautiful php code' \
    --output '/full/path/to/response.json'

我已经在GUZLE v.6.5.8中try 了这段PHP代码,它给出了HTTP520:

(new Client())
->post(
    'https://api.stability.ai/v1/generation/stable-diffusion-xl-1024-v1-0/image-to-image',
    [
        RequestOptions::HEADERS   => [
            'Accept'        => 'application/json',
            'Authorization' => 'Bearer somesecrettoken',
            'Content-Type'  => 'multipart/form-data',
        ],
        RequestOptions::MULTIPART => [
            [
                'name'     => 'text_prompts[0][text]',
                'contents' => 'Beautiful php code',
            ],
            [
                'name'     => 'init_image',
                'contents' => (new File('/full/path/to/init_image.png'))->getContent(),
//                'contents' => \GuzzleHttp\Psr7\Utils::tryFopen('/full/path/to/init_image.png', 'rb'), // This won't work too
            ],
        ],
        RequestOptions::SINK      => '/full/path/to/response.json',
        RequestOptions::DEBUG     => true,
    ],
)

我在这里做错了什么?

推荐答案

假设app.stability.key只包含您的somesecrettoken,那么您的Authorization头将缺少Bearer关键字.

另外,省略Content-Type头可能是个好主意.这个头最终需要包括库用来分隔这个请求的各个部分的边界值--当使用RequestOptions::MULTIPART时,它应该自己添加这个头,包括边界值.如果您显式地指定它,可能会覆盖库将自己创建的内容,然后边界将丢失.

Php相关问答推荐

PHP FFI—Convert void * to int

从WooCommerce购物车和 checkout 页面自定义发货标签

RediSearch PHP希望我在每次使用时定义所有字段

在内部API请求之后,在响应客户端之前,是否忘记了PHP中的Header()?

使用列入黑名单的单词和自定义业务逻辑的组合将特定的子字符串包装在HTML标记中

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

添加并显示单价字段到WooCommerce产品变化

使用PHP编码的字符串与使用OpenSSL编写的shell 代码之间的差异

使用ESI的Symfony Sulu清漆

CKEDITOR-如何在PHP中判断提交后的空数据

execute_query 和prepare+execute 有什么区别?

为什么从一个页面到另一个页面都找不到 JQuery,因为它们使用相同的 twig 模板?

标签打印机的 CSS

尽管有use指令,PHP 类在其他文件中仍处于可见状态

PHP header() 是否缓存重定向,如果是,如何防止它这样做?

适当的时区处理 Laravel / Carbon

正则表达式抓取递归括号的内容

在 WooCommerce 结帐后更新用户元字段

Laravel 从嵌套数组的第二级获取最后一项

图像不会显示在生产中的 Laravel 应用程序中