开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
人脸识别

    高清人像美化(邀测)

    图片美化API

    如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

    • 在百度云控制台内 提交工单,咨询问题类型请选择人工智能服务
    • 如有需要讨论的疑问,欢迎进入 AI社区 与其他开发者们一同交流
    • 特效客户交流QQ群:583486416

    功能描述

    提供四大智能人像美化能力-美颜,滤镜,五官塑形,美妆,并支持多种文件质量输出。

    在线调试

    您可以在 API Explorer 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。

    请求说明

    请求URL数据格式

    向API服务地址使用POST发送请求,必须在URL中带上参数access_token,可通过后台的API Key和Secret Key生成,具体方式请参考“Access Token获取”。

    示例代码

    #!/bin/bash
    curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】'
    <?php
    function request_post($url = '', $param = '') {
            if (empty($url) || empty($param)) {
                return false;
            }
            
            $postUrl = $url;
            $curlPost = $param;
            $curl = curl_init();//初始化curl
            curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
            curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
            curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
            curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
            $data = curl_exec($curl);//运行curl
            curl_close($curl);
            
            return $data;
        }
    
        $url = 'https://aip.baidubce.com/oauth/2.0/token';
        $post_data['grant_type']       = 'client_credentials';
        $post_data['client_id']      = '你的 Api Key';
        $post_data['client_secret'] = '你的 Secret Key';
        $o = "";
        foreach ( $post_data as $k => $v ) 
        {
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);
        
        $res = request_post($url, $post_data);
    
        var_dump($res);
    
    ?>
    package com.baidu.ai.aip.auth;
    
    import org.json.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 获取token类
     */
    public class AuthService {
    
        /**
         * 获取权限token
         * @return 返回示例:
         * {
         * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
         * "expires_in": 2592000
         * }
         */
        public static String getAuth() {
            // 官网获取的 API Key 更新为你注册的
            String clientId = "百度云应用的AK";
            // 官网获取的 Secret Key 更新为你注册的
            String clientSecret = "百度云应用的SK";
            return getAuth(clientId, clientSecret);
        }
    
        /**
         * 获取API访问token
         * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
         * @param ak - 百度云官网获取的 API Key
         * @param sk - 百度云官网获取的 Securet Key
         * @return assess_token 示例:
         * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
         */
        public static String getAuth(String ak, String sk) {
            // 获取token地址
            String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
            String getAccessTokenUrl = authHost
                    // 1. grant_type为固定参数
                    + "grant_type=client_credentials"
                    // 2. 官网获取的 API Key
                    + "&client_id=" + ak
                    // 3. 官网获取的 Secret Key
                    + "&client_secret=" + sk;
            try {
                URL realUrl = new URL(getAccessTokenUrl);
                // 打开和URL之间的连接
                HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
                connection.setRequestMethod("GET");
                connection.connect();
                // 获取所有响应头字段
                Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
                for (String key : map.keySet()) {
                    System.err.println(key + "--->" + map.get(key));
                }
                // 定义 BufferedReader输入流来读取URL的响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String result = "";
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
                /**
                 * 返回结果示例
                 */
                System.err.println("result:" + result);
                JSONObject jsonObject = new JSONObject(result);
                String access_token = jsonObject.getString("access_token");
                return access_token;
            } catch (Exception e) {
                System.err.printf("获取token失败!");
                e.printStackTrace(System.err);
            }
            return null;
        }
    
    }
     # encoding:utf-8
    import requests 
    
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
    response = requests.get(host)
    if response:
        print(response.json())
    #include <iostream>
    #include <curl/curl.h>
    #include <json/json.h>
    #include "access_token.h"
    // libcurl库下载链接:https://curl.haxx.se/download.html
    // jsoncpp库下载链接:https://github.com/open-source-parsers/jsoncpp/
    // 获取access_token所需要的url
    const std::string access_token_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials";
    // 回调函数获取到的access_token存放变量
    // static std::string access_token_result;
    /**
     * curl发送http请求调用的回调函数,回调函数中对返回的json格式的body进行了解析,解析结果储存在result中
     * @param 参数定义见libcurl库文档
     * @return 返回值定义见libcurl库文档
     */
    static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) {
        // 获取到的body存放在ptr中,先将其转换为string格式
        std::string s((char *) ptr, size * nmemb);
        // 开始获取json中的access token项目
        Json::Reader reader;
        Json::Value root;
        // 使用boost库解析json
        reader.parse(s,root);
        std::string* access_token_result = static_cast<std::string*>(stream);
        *access_token_result = root["access_token"].asString();
        return size * nmemb;
    }
    
    /**
     * 用以获取access_token的函数,使用时需要先在百度云控制台申请相应功能的应用,获得对应的API Key和Secret Key
     * @param access_token 获取得到的access token,调用函数时需传入该参数
     * @param AK 应用的API key
     * @param SK 应用的Secret key
     * @return 返回0代表获取access token成功,其他返回值代表获取失败
     */
    int get_access_token(std::string &access_token, const std::string &AK, const std::string &SK) {
        CURL *curl;
        CURLcode result_code;
        int error_code = 0;
        curl = curl_easy_init();
        if (curl) {
            std::string url = access_token_url + "&client_id=" + AK + "&client_secret=" + SK;
            curl_easy_setopt(curl, CURLOPT_URL, url.data());
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
            std::string access_token_result;
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &access_token_result);
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
            result_code = curl_easy_perform(curl);
            if (result_code != CURLE_OK) {
                fprintf(stderr, "curl_easy_perform() failed: %s\n",
                        curl_easy_strerror(result_code));
                return 1;
            }
            access_token = access_token_result;
            curl_easy_cleanup(curl);
            error_code = 0;
        } else {
            fprintf(stderr, "curl_easy_init() failed.");
            error_code = 1;
        }
        return error_code;
    }
    using System;
    using System.Collections.Generic;
    using System.Net.Http;
    
    namespace com.baidu.ai
    {
        public static class AccessToken
    
        {
            // 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存
            // 返回token示例
            public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";
    
            // 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务
            private static String clientId = "百度云应用的AK";
            // 百度云中开通对应服务应用的 Secret Key
            private static String clientSecret = "百度云应用的SK";
    
            public static String getAccessToken() {
                String authHost = "https://aip.baidubce.com/oauth/2.0/token";
                HttpClient client = new HttpClient();
                List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
                paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
                paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
                paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));
    
                HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
                String result = response.Content.ReadAsStringAsync().Result;
                Console.WriteLine(result);
                return result;
            }
        }
    }
    var https = require('https');
    var qs = require('querystring');
    
    const param = qs.stringify({
        'grant_type': 'client_credentials',
        'client_id': '您的 Api Key',
        'client_secret': '您的 Secret Key'
    });
    
    https.get(
        {
            hostname: 'aip.baidubce.com',
            path: '/oauth/2.0/token?' + param,
            agent: false
        },
        function (res) {
            // 在标准输出中查看运行结果
            res.pipe(process.stdout);
        }
    );

    注意access_token的有效期为30天,切记需要每30天进行定期更换,或者每次请求都拉取新token

    接口调用说明

    (1)终端上传图片URL或者base64和美化参数,云端渲染后返回图片base64; (2)一次http请求是一个完成的交互,即本次渲染不依赖上一次的结果

    请求方式

    (1)协议:http (2)请求方法:POST (3)请求地址:https://aip.baidubce.com/rest/2.0/face/v1/FaceBeauty

    请求参数

    (1)http的Header参数说明:

    参数 示例值 必填项 描述
    Content-Type application/json 类型
    logid 12345 日志id

    (2)http的Body参数说明:

    参数名 示例值 类型 必填项 描述
    image /9j/4RRPRX String 图片base64编码或者图片url(限http)
    image_quality 80 Number 输出的图片质量(10~100),默认80
    property Object
    property.entirety Array 滤镜
    property.entirety.style rosy String 风格
    property.entirety.value 0.2 Number 风格值
    property.shap Array 美型
    property.shap.style defaultFace String 风格
    property.shap.value 0.5 Number 风格值
    property.skin Array 美颜
    property.skin.style white String 风格
    roperty.skin.value 0.6 Number 风格值
    property.visskin Array vis祛眼圈、眼袋、法令纹,(注意:该部分参数请求耗时较长,图片分辨率<4K)
    property.visskin.style eyebags String 优化项
    property.visskin.value 0.6 Number 优化值
    property.makeup Array 美妆
    property.makeup.kind lips String 美妆类型
    property.makeup.style milkTeaColor String 风格
    property.makeup.value 0.3 Number 风格值
    property.color Array 画质颜色
    property.color.style brightness String 调节项
    property.color.value 0.6 Number 风格值

    关于property的参数

    其中,基础滤镜、美妆滤镜能力的最下层风格参数单次请求选择一项即可,其他能力的风格参数可选多项。如不需要某项能力可不选。

    美颜能力

    种类(kind) 风格(style) 风格值(value) 备注
    基础滤镜entirety memory 回忆 0.0~1.0
    基础滤镜entirety gril 少女 0.0~1.0
    rosy 红润 0.0~1.0
    city 都市 0.0~1.0
    shimmer 微光 0.0~1.0
    redLips 红唇 0.0~1.0
    darkTone 暗调 0.0~1.0
    natural 自然 0.0~1.0
    white 白皙 0.0~1.0
    whiteTea 茶白 0.0~1.0
    strawberry 草莓 0.0~1.0
    superWhite 超白 0.0~1.0
    reef 海礁 0.0~1.0
    walnut 胡桃 0.0~1.0
    orangeJuice 橘子汽水 0.0~1.0
    sunlight 日光 0.0~1.0
    azure 蔚蓝 0.0~1.0
    nightView 夜景 0.0~1.0
    skin美颜滤镜-(该部分祛黑眼圈效果与visskin下的黑眼圈二选一使用) white 美白
    smooth 磨皮 0.0~1.0
    darkcircles 祛黑眼圈 0.0~1.0
    visskin vis优化美肤 -(注意:该部分参数请求耗时较长,图片分辨率<4K) darkcircles 祛黑眼圈 0.0~1.0
    lawpattern 祛法令纹 0.0~1.0
    eyebags 祛眼袋 0.0~1.0
    speckle 祛斑 取值0或1
    mole 祛痣 祛痣0或1
    acne 祛痘 取值0或1
    color画质颜色 brightness 亮度 -1.0~1.0 默认值0.1
    contrast 对比度 -1.0~1.0 默认值0.1
    saturation 饱和度 -1.0~1.0 默认值0.15
    shape美型滤镜 defaultFace 默认脸 0.0~1.0
    babyFace 娃娃脸 0.0~1.0
    exquisiteFace 精致 0.0~1.0
    freshMeetFace 鲜肉 0.0~1.0
    liveVideoFace 网红 0.0~1.0
    maleFace 型男 0.0~1.0
    naturalFace 自然 0.0~1.0
    makeup美妆滤镜-cheek 腮红 naturePink 自然粉 0.0~1.0
    japaneseRed 日系红 0.0~1.0
    highlights 亮点 0.0~1.0
    sunburn 晒伤 0.0~1.0
    flashing 闪烁 0.0~1.0
    makeup美妆滤镜-美瞳 eyeball firstSightGray 初见灰 0.0~1.0
    teardrop 泪珠闪 0.0~1.0
    matteBrown 雾绒棕 0.0~1.0
    makeup美妆滤镜-eyebrow 眉毛 goddessBrown 女神棕 0.0~1.0
    sandei 山黛黑 0.0~1.0
    willowPalm 柳叶棕 0.0~1.0
    makeup美妆滤镜-eyeliner 眼线 playful 小俏皮 0.0~1.0
    wildcat 小野猫 0.0~1.0
    makeup美妆滤镜-eyeshadow 眼影 customPainted 定制彩妆 0.0~1.0
    peachBlossom 桃花妆 0.0~1.0
    sweetTangerine 甜橘妆 0.0~1.0
    flicker 细闪妆 0.0~1.0
    diamond 贴钻妆 0.0~1.0
    makeup美妆滤镜-lips 口红 missYou 想你色 0.0~1.0
    cherryRed 樱桃红 0.0~1.0
    caramelColor 焦糖色 0.0~1.0
    neutralCold 中性冷酷 0.0~1.0
    milkTeaColor 奶茶色 0.0~1.0
    loveLips 爱心嘴唇 0.0~1.0
    makeup美妆滤镜-trimming 修容 europeAmerica 欧美 0.0~1.0
    waterLight 水光 0.0~1.0

    示例代码:

    {
      "image": "sfasq35sadvsvqwr5q...",
      "image_quality": 80,
      "property": {
        "entirety": [
          {
            "style": "rosy",
            "value": 0.2
          }
        ],
        "shape": [
          {
            "style": "defaultFace",
            "value": 0.5
          }
        ],
        "skin": [
          {
            "style": "white",
            "value": 0.9
          },
          {
            "style": "smooth",
            "value": 0.9
          }
          ],
          "visskin":[
          {
            "style": "lawpattern",
            "value": 0.9
          },
          {
            "style": "darkcircles",
            "value": 1
          }
        ],
          "color":[
          {
            "style": "brightness",
            "value": 0.9
          },
          {
            "style": "contrast",
            "value": 1
          }
        ],
        "makeup": [
          {
            "kind": "lips",
            "style": "milkTeaColor",
            "value": 0.3
          },
          {
            "kind": "cheek",
            "style": "naturePink",
            "value": 0.3
          },
          {
            "kind": "trimming",
            "style": "europeAmerica",
            "value": 0.5
          },
          {
            "kind": "eyebrow",
            "style": "goddessBrown",
            "value": 0.5
          }
        ]
      }
    }

    返回说明

    返回参数

    参数值 示例值 类型 必填项 描述
    err_no 0 Number 错误码
    err_msg success String 错误信息
    image /9j/4RRPRX... String 图片base64编码

    错误码

    错误码 含义
    0 成功
    4000 http错误
    4001 json错误
    4002 base64错误
    4020 图片错误,无法读取
    4021 图片格式不支持
    4022 图片太大(分辨率大于8kx8k,或者文件大于30M)
    4023 图片太小(分辨率小于128x128)
    4024 图片质量参数错误(10~100)
    4100 美化参数错误
    5000 服务器错误
    5001 服务繁忙,任务过期,未检测到人脸

    返回示例:

    {
     "err_no": 0,
     "err_msg": "success",
     "image": "/9j/4RRPRX......",
    }
    上一篇
    虚拟主播视频生产(邀测)
    下一篇
    医美特效API文档