昨天學了如何上傳圖片給 AI 辨識,今天我們讓 AI 來產生圖片吧
不果要生成圖片前先給大家看一下最近 API 測試的數據
多虧 gpt-4o mini 模型,測試了幾天才花 0.16 美金,可是有注意到 Image models 就佔了 0.08 美金嗎?而且我只產生一張圖,以實用性來說還是有點貴
如果要測試功能的話可以先找些便宜的平台測式,之後再進行切換才不會浪費冤枉錢,今天就教大家使用免費的模型來進行測試,下方是 Spring AI 有支援文生圖的 AI 供應商,扣掉 OpenAI 就只剩三家
Stability: 提供 25 個點數可供測試,用最舊的模型還能跑的百來張圖片,有興趣的也可以去測試看看
ZhiPuAI: 有個開發數限制,只要同時請求的數量沒太多就能一直測下去
QianFan: 非大陸手機無法註冊,放棄
拿最友善的 ZhiPuAI 測試吧,在官網 https://open.bigmodel.cn/ 註冊後點選由上方 API 密鑰就能取得 API Key
接下來要在 Spring 專案上加入 ZhiPuAI 的依賴,可以直接在 pom.xml 加上以下內容
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
</dependency>
完成後就可以設定 ZhiPuAI 的 Apikey了,把原本設定 openai 的地方改成 zhipuai 即可,key 就填官網上複製的
spring:
ai:
zhipuai:
api-key: ${ZHIPUAI_APIKEY}
下面是程式片段
@RestController
@RequiredArgsConstructor
class AiController {
private final ImageModel imageModel;
@GetMapping("/image")
public String image(String prompt) {
ImageResponse response = imageModel.call(new ImagePrompt(prompt));
Image image = response.getResult().getOutput();
return String.format("<img src='%s' alt='%s'>", image.getUrl(), prompt);
}
}
@FunctionalInterface
public interface ImageModel extends Model<ImagePrompt, ImageResponse> {
ImageResponse call(ImagePrompt request);
}
看看成果吧,使用 GetMapping 直接在瀏覽器輸入即可
雖然 ZhiPuAI 提供的選項不多,人物風格也不是我喜歡的(特別愛給中國古典美人圖),不過拿來練習還是蠻不錯的
有一點要特別注意,ZhiPuAI 會封鎖一些敏感的字眼有問題會出現下面的錯誤(其實只是叫它給我一張出浴圖,也沒要他給我裸體XD)
{
"contentFilter":[{"level":2,"role":"user"}],
"error":{
"code":"1301",
"message":"系统检测到输入或生成内容可能包含不安全或敏感内容,请您避免输入易产生敏感内容的提示语,感谢您的配合。"
}
}
https://github.com/kevintsai1202/SpringBoot-AI-Day8.git
凱文大叔使用 Java 開發程式超過 20 年,對於 Java 生態非常熟悉,曾使用反射機制開發 ETL 框架,對 Spring 背後的原理非常清楚,目前以 Spring Boot 作為後端開發框架,前端使用 React 搭配 Ant Design
下班之餘在 Amazing Talker 擔任程式語言講師,並獲得學員的一致好評
最近剛成立一個粉絲專頁-凱文大叔教你寫程式 歡迎大家多追蹤,我會不定期分享實用的知識以及程式開發技巧
想討論 Spring 的 Java 開發人員可以加入 FB 討論區 Spring Boot Developer Taiwan
我是凱文大叔,歡迎一起加入學習程式的行列