能提供一下文件在本地或文件不在同一地域OSS, 生成式图像卡通化的代码吗?

请问我用php的 生成式图像卡通化,sdk已经接入了,提示图片链接非法,请检查图片链接是否可访问 - imageUrl is invalid url.,能提供一下文件在本地或文件不在同一地域OSS, 生成式图像卡通化的代码吗?

展开
收起
真的很搞笑 2023-04-04 15:27:12 324 分享 版权
4 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云视觉智能开放平台提供图像卡通化功能,可直接使用API实现。同时,也支持从本地上传文件到OSS,并从OSS下载文件进行卡通化处理。

    以下是生成式图像卡通化的代码示例:

    import requests
    
    # 1. 先获取 Access Token
    url_token = 'https://dtplus-cn-shanghai.data.aliyuncs.com/imagecn/aifaceaccess_token'
    headers_token = {"Authorization": "APPCODE <yourAppCode>"}
    response_token = requests.get(url_token, headers=headers_token)
    
    # 从 response_token 中获取 Access Token
    access_token = response_token.json().get('access_token')
    
    # 2. 图像卡通化
    url_cartoon = "https://dtplus-cn-shanghai.data.aliyuncs.com/imagecn/cartoon"
    headers_cartoon = {"Authorization": "Bearer " + access_token}
    
    # 图片文件在本地
    # files = {'image_file': open('/path/to/your/image.jpg', 'rb')}
    
    # 图片文件在OSS
    bucket_name = 'your-bucket-name'
    object_name = 'your-object-name'
    oss_endpoint = 'oss-cn-hangzhou.aliyuncs.com'
    oss_url = 'http://' + bucket_name + '.' + oss_endpoint + '/' + object_name
    files = {'image_url': (None, oss_url)}
    
    response_cartoon = requests.post(url_cartoon, files=files, headers=headers_cartoon)
    
    # 3. 保存卡通化后的图片
    if response_cartoon.status_code == 200:
        img_data = response_cartoon.content
        with open('/path/to/your/cartoon_image.jpg', 'wb') as handler:
            handler.write(img_data)
    

    其中,需要替换 、/path/to/your/image.jpg、your-bucket-name 和 your-object-name 为您具体的参数。

    2023-04-25 11:49:26
    赞同 展开评论
  • 如果传入的URL是非上海oss的,需要使用文件URL处理的方式 2ed58d87ba057e9a80713808acd0c85d.png ,此回答整理自钉群“阿里云视觉智能开放平台咨询1群”

    2023-04-04 18:14:07
    赞同 展开评论
  • <?php
    
    //安装依赖
    //最低SDK版本要求:imageenhan-20190930的SDK版本需大于等于1.0.11。
    //可以在此仓库地址中引用最新版本SDK:https://packagist.org/packages/alibabacloud/imageenhan-20190930  
    //composer require alibabacloud/imageenhan-20190930
    
    use AlibabaCloud\SDK\Imageenhan\V20190930\Imageenhan;
    use \Exception;
    use AlibabaCloud\Tea\Utils\Utils;
    use Darabonba\OpenApi\Models\Config;
    use AlibabaCloud\SDK\Imageenhan\V20190930\Models\GenerateCartoonizedImageAdvanceRequest;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use GuzzleHttp\Psr7\Stream;
    
    class GenerateCartoonizedImageAdvance {
    
        /**
         * 使用AK&SK初始化账号Client
         * @param string $accessKeyId
         * @param string $accessKeySecret
         * @return Imageenhan Client
         */
        public static function createClient($accessKeyId, $accessKeySecret){
            $config = new Config([
                // 必填,您的 AccessKey ID
                "accessKeyId" => $accessKeyId,
                // 必填,您的 AccessKey Secret
                "accessKeySecret" => $accessKeySecret
            ]);
            // 访问的域名
            $config->endpoint = "imageenhan.cn-shanghai.aliyuncs.com";
            return new Imageenhan($config);
        }
    
        /**
         * @param string[] $args
         * @return void
         */
        public static function main($args){
            // "YOUR_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_SECRET" 的生成请参考https://help.aliyun.com/document_detail/175144.html
            // 如果您是用的子账号AccessKey,还需要为子账号授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html
            $client = self::createClient("YOUR_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_SECRET");
            // 场景一,使用本地文件
            //$file = fopen('/tmp/GenerateCartoonizedImage.jpg', 'rb');
            //$stream = new Stream($file);
            // 场景二,使用任意可访问的url
            $file = fopen('https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/imageenhan/GenerateCartoonizedImage/1025.jpg', 'rb');
            $stream = new Stream($file);
            $generateCartoonizedImageAdvanceRequest = new GenerateCartoonizedImageAdvanceRequest([
                "imageUrlObject" => $stream,
                "imageType" => "girl",
                "index" => "0"
            ]);
            $runtime = new RuntimeOptions([]);
            try {
                $resp = $client->generateCartoonizedImageAdvance($generateCartoonizedImageAdvanceRequest, $runtime);
                # 获取整体结果
                echo Utils::toJSONString($resp->body);
            } catch (Exception $exception) {
                # 获取整体报错信息
                echo Utils::toJSONString($exception);
                # 获取单个字段
                echo $exception->getCode();
            }
        }
    }
    $path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
    if (file_exists($path)) {
        require_once $path;
    }
    GenerateCartoonizedImageAdvance::main(array_slice($argv, 1));
    
    
    2023-04-04 15:39:35
    赞同 展开评论
  • 可以看下最佳实践中提供的文件在本地或文件不在同一地域OSS的实例代码 https://help.aliyun.com/document_detail/602271.html

    2023-04-04 15:31:16
    赞同 展开评论

为开发者提供高易用、普惠的视觉API服务,帮助企业快速建立视觉智能技术应用能力的综合性视觉AI能力平台。适用于数字营销、互联网娱乐、安防、手机应用、泛金融身份认证等行业。

收录在圈子:
阿里云视觉智能开放平台视觉AI能力问题咨询,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群

热门讨论

热门文章

还有其他疑问?
咨询AI助理