接入图像ai开放平台LiblibAI简易教程

一、前言

        Liblib是个图像ai平台,有根据文字生成图片,修复图片,图片重绘等多种功能,想了解更多信息可以去它的官网查看。

        LiblibAI官网:LiblibAI-哩布哩布AI - 中国领先的AI创作平台

        LiblibAI开放平台文档:Docs

        我们需要对接的是它开发平台中提供的api来使用它的功能,我这里节省大家去看它开发平台文档和研究怎么对接的时间,提供快速简易对接步骤。

        我这里提供两种方式的对接,大家按需选择:

        (1)使用http对接。

        (2)使用平台提供的jdk对接。

        注意:这是一个付费的平台,不过注册的新账号有送免费试用的积分,用来学习和试用都是足够的,大家按需使用。

二、准备

        1.首先要去官网注册一个账号并登录。

        2.在官网首页左侧导航栏有API开发平台的菜单,点击进去,记得先登录账号。

        3.点击进去会看到两个使用api平台需要用到的key,把这两个key复制出来保存好。

三、使用http对接

        开发平台的域名地址:https://openapi.liblibai.cloud

        本文中使用的都是这里的api,具体信息大家可以打开文档地址查看。

        上面开发平台文档中的api调用都是需要在请求url地址后面加上下面这几个参数:

        例如:https://openapi.liblibai.cloud/api/generate/webui/text2img?AccessKey=aaa&Signature=bbb&Timestamp=123&SignatureNonce=ccc

        上面这些签名参数是根据下面规则来生成的。

        官方开发平台文档中有提供java、python、nodejs的生成签名参数代码样例,我这里直接使用文档中提供的生成签名参数java代码,然后自己改了一下方便使用。

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.RandomStringUtils;

public class SignUtil {
    private final static String txt2img_uri = "/api/generate/webui/text2img";

    private final static String check_uri = "/api/generate/webui/status";

    private final static String img2img_uri = "/api/generate/webui/img2img";

    private final static String get_model_version = "/api/model/version/get";

    /**
     * 生成请求签名
     * 其中相关变量均为示例,请替换为您的实际数据
     */
    public static String makeSign() {

        // API访问密钥
        String secretKey = "your_key";

        // 请求API接口的uri地址
        String uri = txt2img_uri;
        // 当前毫秒时间戳
        Long timestamp = System.currentTimeMillis();
        System.out.println("=============timestamp: " + timestamp);
        // 随机字符串
        String signatureNonce = RandomStringUtils.randomAlphanumeric(10);
        System.out.println("=============signatureNonce: " + signatureNonce);
        // 拼接请求数据
        String content = uri + "&" + timestamp + "&" + signatureNonce;

        try {
            // 生成签名
            SecretKeySpec secret = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1");
            Mac mac = Mac.getInstance("HmacSHA1");
            mac.init(secret);
            return Base64.encodeBase64URLSafeString(mac.doFinal(content.getBytes()));
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("no such algorithm");
        } catch (InvalidKeyException e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        System.out.println("=============Signature: " + makeSign());
    }


}

        运行后会得到上面那些签名参数,然后就可以利用postman或者其他http请求工具来进行调试了。

        上面得到请求api的签名参数后,还需要构造请求体,下面我们来构造请求体。

        我这里调用的是文字生成图片的api: /api/generate/webui/text2img

        我提供一个json数据示例,大家可以直接拿来调用,调用的时候记得删除注释。

{
  "templateUuid": "6f7c4652458d4802969f8d089cf5b91f", // 官方提供的固定模板id
  "generateParams": {
    "prompt": "A boy with a car", // 图片描述,必须是英文,不能是中文
    "steps": 20, // 采样步数
    "width": 768, // 图片的宽度
    "height": 768, // 图片的长度
    "imgCount": 1, // 生成的图片数量
    "seed": -1, // 随机种子值,-1表示随机
    "restoreFaces": 0 // 面部修复,0关闭,1开启
  }
}

        调用成功后会返回一个生成图片的任务id,因为图片的生成需要时间,所以我们需要利用这个id去调用查询图片状态的api来查看图片是否已经生成成功。

        查询图片生成状态的api:/api/generate/webui/status

        api的请求体:

{
  "generateUuid": "生成的图片任务id"
}

        复制图片地址用浏览器打开就可以看到生成好的图片了。

        到这里就已经成功接入liblibai的开发平台了,把上面的http请求写成代码就可以在项目中调用了,其他的api接口和参数可以自行去官方文档中查看,调用套路都是一样的。

四、使用jdk对接(仅限java使用)

        使用官方平台提供的jdk对接会比上面的http对接简单很多。

        jdk的git地址:https://github.com/gravitywp/liblib-java-sdk?tab=readme-ov-file#installation

        引入maven包,如果使用Gradle和其他打包的方式可以去上面的git地址查看。

<dependency>
  <groupId>cloud.liblibai.openapi</groupId>
  <artifactId>java-sdk</artifactId>
  <version>0.0.7</version>
  <scope>compile</scope>
</dependency>

        引包成功后,直接复制官方提供的样例代码就可以直接调用api了。


import cloud.liblibai.client.LibLib;
import cloud.liblibai.openapi.client.ApiException;
import cloud.liblibai.openapi.client.model.*;

public class Example {
    public static void main(String[] args) throws ApiException, InterruptedException {
        //LibLib api = new LibLib(); //Read LIBLIB_ACCESS_KEY and LIBLIB_SECRET_KEY from env
        LibLib api = new LibLib("access_key", "secret_key") // 填入你自己的key
        TextToImageRequest request = new TextToImageRequest();
        TextToImageRequestGenerateParams params = new TextToImageRequestGenerateParams();
        params.prompt("1 girl").imgCount(2);
        request.generateParams(params);
        request.templateUuid("6f7c4652458d4802969f8d089cf5b91f");

        //NOTE(gz): 异步 SDK 调用方法
        SubmitResponse submitResponse = api.submitTextToImage(request);
        while(true) {
            StatusResponse status = api.getStatus(new StatusRequest().generateUuid(submitResponse.getData().getGenerateUuid()));
            System.out.println(status);
            if (status.getData().getGenerateStatus() == GenerateStatus.SUCCEED) {
                System.out.println(status.getData().getImages());
                break;
            }
            Thread.sleep(5000);
        }

        //NOTE(gz): 同步 SDK 调用方法
        StatusResponseData statusResponseData = api.textToImage(request);
        if (statusResponseData.getGenerateStatus() == GenerateStatus.SUCCEED) {
            System.out.println(statusResponseData.getImages());
        }
    }
}

        调用成功会返回图片地址。

五、结束

        祝大家玩得愉快~

### LiblibAI 星流图像大模型 API 的使用教程 为了在 Vue 项目中集成 LiblibAI 星流图像大模型 API 并实现图片上传后的图像识别功能,可以遵循如下结构化的方法。 #### 安装依赖库 首先,在项目根目录下安装必要的 HTTP 请求库 `axios` 或者其他类似的工具来发送网络请求: ```bash npm install axios --save ``` #### 创建 API 文件夹与服务文件 创建一个专门用于管理 API 调用的服务文件。这有助于保持项目的模块化和可维护性[^3]。 ```javascript // src/api/imageRecognition.js import axios from 'axios'; const BASE_URL = 'https://api.liblibai.com/v1/starflow-image/'; export const recognizeImage = (formData, config) => { return axios.post(`${BASE_URL}recognize`, formData, config); }; ``` #### 组件内部逻辑编写 接下来是在组件里处理图片上传以及调用上述定义好的接口函数。这里假设有一个名为 `ImageUploader.vue` 的单文件组件负责此任务。 ```html <!-- ImageUploader.vue --> <template> <div class="upload-section"> <input type="file" @change="handleFileChange"/> <button @click="submit">Submit</button> <p v-if="result">{{ result }}</p> </div> </template> <script setup> import { ref } from 'vue'; import { recognizeImage } from '../api/imageRecognition'; let fileInput = null; let result = ref(''); function handleFileChange(event){ fileInput = event.target.files[0]; } async function submit(){ if (!fileInput) return; let formData = new FormData(); formData.append('image', fileInput); try{ const response = await recognizeImage(formData,{ headers:{ 'Content-Type': 'multipart/form-data', Authorization: 'Bearer YOUR_ACCESS_TOKEN' } }); result.value = JSON.stringify(response.data.message || response.data, null, 2); } catch(error){ console.error("Error occurred while recognizing image", error); } } </script> ``` 请注意替换 `'YOUR_ACCESS_TOKEN'` 为实际应用中的访问令牌。 #### 配置环境变量 对于敏感信息如 API 密钥或 Token 不应该硬编码到源码当中而是通过 `.env` 文件配置成环境变量的形式引入。 ```plaintext VUE_APP_LIBLIB_API_KEY=your_liblib_api_key_here ``` 然后可以在代码里面这样读取它: ```javascript Authorization: 'Bearer ' + process.env.VUE_APP_LIBLIB_API_KEY, ``` 以上就是如何在一个基于 Vue 构建的应用程序中接入 LiblibAI 星流图像大模型 API 进行图片分析的一个基本流程介绍[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值