当前位置:AIGC资讯 > AIGC > 正文

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:生成的图片地址,直接访问就是生成好的图片

报错情况

如果出现了报错,可以通过错误码查看对应的内容

如果对你有帮助,帮忙点一个免费的赞吧,❤

更新时间 2024-02-04