我试图在replicate.com上创建一个稳定的扩散模型的wordpress php连接。这似乎是可行的,但当我添加一个init图像时,处理将不会启动。实际上,它在没有输出提示的情况下停止了"status: starting“。我可以在复制仪表板上看到api预测上的图像,但我认为图像并没有真正上传。当我单击"Tweek“并替换该图像时,它会工作。我在这里做错什么了?
curl_setopt($resource, CURLOPT_URL, 'https://api.replicate.com/v1/predictions');
curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($resource, CURLOPT_POST, 1);
$data = array(
'version' => '56f26876a159c10b429c382f66ccda648c1d5678d7ce15ed010734b715be5ab9',
'input' => array(
'prompt' => 'circles',
'init_image' => 'https://example.com/wp-content/uploads/img.jpg'
)
);
curl_setopt($resource, CURLOPT_POSTFIELDS, json_encode($data));
$headers = array();
$headers[] = 'Authorization: Token njdscknjk3nkjn32nk3jn3j';
$headers[] = 'Content-Type: application/json';
curl_setopt($resource, CURLOPT_HTTPHEADER, $headers);
$output = curl_exec($resource); 发布于 2022-10-07 00:18:23
你的卷发是在做你想做的事。
这就是服务器将看到的:
Content-Length: 174
Content-Type: application/json
Accept: */*
BODY=
{"version":"56f26876a159c10b429c382f66ccda648c1d5678d7ce15ed010734b715be5ab9","input":{"prompt":"circles","init_image":"https:\/\/example.com\/wp-content\/uploads\/img.jpg"}}您正在传输的是图像url而不是图像。试试这个:
$image = base64_encode(file_get_contents('https://example.com/wp-content/uploads/img.jpg'));
'init_image' => $image;该图像还可能需要以:'data:[<mediatype>][;base64],<data>'作为前缀
$image = 'data: image/jpeg;base64,' . base64_encode(file_get_contents('https://example.com/wp-content/uploads/img.jpg'));base64数据可能(也可能不)需要使用urlencode()函数编码。
您正在进行HTTPS发布,因此您可能(或不可能)需要这些,但是请求将不安全,服务器可能会拒绝它。
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);https://stackoverflow.com/questions/73977780
复制相似问题