Java 接入文心一格(Ai绘画)

JAVA接入文心一格

环境准备

首先进入百度云的智能创作平台
百度云创作平台
先购买对应的版本,各版本的价格为:
在这里插入图片描述

在这里插入图片描述
在购买完成后,点击创建应用
在这里插入图片描述
创建完成后,就可以开始进行代码编写了

代码部分

鉴权

首先需要鉴权,需要通过传入上面的apikey和secretkey获取token

    static String getAccessToken() throws IOException {
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
                + "&client_secret=" + SECRET_KEY);
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/oauth/2.0/token")
                .method("POST", body)
                .addHeader("Content-Type", "application/x-www-form-urlencoded")
                .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        return JSONObject.parseObject(response.body().string()).getString("access_token");
    }

在获取了token后就可以使用他发起申请了
文心一格的画图接口分为两个方法,分别是,创建画图任务和获取图片

创建画图任务

        OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
        MediaType mediaType = MediaType.parse("application/json");
        Map<String,Object> map=new HashMap<>();
        map.put("prompt","帮我画一个猪八戒");
        map.put("width",1024);
        map.put("height",1024);
        RequestBody body = RequestBody.create(mediaType, com.alibaba.fastjson2.JSONObject.toJSONString(map));
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/rpc/2.0/ernievilg/v1/txt2imgv2?access_token=" + getAccessToken())
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
                .addHeader("Accept", "application/json")
                .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        JSONObject jsonObject = JSONObject.parseObject(response.body().string());
        System.out.println(jsonObject);

想要增加别的参数在map中添加就行
在这里插入图片描述
在这里插入图片描述
得到的返回值是
在这里插入图片描述

taskid就是你的任务的id,可以拿这个字段去进行获取图片了

获取生成的图片

将刚才获取到的taskid传入对应接口获取图片

        MediaType mediaType = MediaType.parse("application/json");
        Map<String,Object> map=new HashMap<>();
        map.put("task_id","1740652426096749796");//taskid
        RequestBody body = RequestBody.create(mediaType, JSONObject.toJSONString(map));
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/rpc/2.0/ernievilg/v1/getImgv2?access_token=" + getAccessToken())
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
                .addHeader("Accept", "application/json")
                .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        JSONObject jsonObject = JSONObject.parseObject(response.body().string());
        System.out.println(jsonObject);

返回值为
在这里插入图片描述
task_status:计算总状态。有 INIT(初始化),WAIT(排队中), RUNNING(生成中), FAILED(失败), SUCCESS(成功)四种状态,只有 SUCCESS 为成功状态

img_url:生成的图片地址,直接访问就是生成好的图片

报错情况

如果出现了报错,可以通过错误码查看对应的内容
在这里插入图片描述
如果对你有帮助,帮忙点一个免费的赞吧,❤

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值