package com.heyu.api.alibaba; import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation; import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam; import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult; import com.alibaba.dashscope.common.MultiModalMessage; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.NoApiKeyException; import com.alibaba.dashscope.exception.UploadFileException; import com.alibaba.dashscope.utils.Constants; import com.alibaba.dashscope.utils.JsonUtils; import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class QwenImageEdit { static { // 以下为中国(北京)地域url,若使用新加坡地域的模型,需将url替换为:https://dashscope-intl.aliyuncs.com/api/v1 Constants.baseHttpApiUrl = "https://dashscope.aliyuncs.com/api/v1"; } // 若没有配置环境变量,请用百炼 API Key 将下行替换为:apiKey="sk-xxx" // 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key static String apiKey = LLMUtils.apiKey; public static void call() throws ApiException, NoApiKeyException, UploadFileException, IOException { MultiModalConversation conv = new MultiModalConversation(); // MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue()) // .content(Arrays.asList( // Collections.singletonMap("image", "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcbu01.alicdn.com%2Fimg%2Fibank%2F2019%2F790%2F571%2F12184175097_276213056.jpg&refer=http%3A%2F%2Fcbu01.alicdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1761752391&t=9d85136483c31600c81d6dfc20595979"), // Collections.singletonMap("text", "将珍珠戴在美女模特身上") // )).build(); // 多图编辑示例 MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue()) .content(Arrays.asList( Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/2971781571/p942929.png"), Collections.singletonMap("image", "https://gw.alicdn.com/bao/uploaded/i2/2219725998116/O1CN01c1MATl29pBWjNu3MS_!!2219725998116.jpg_.webp"), Collections.singletonMap("text", "将图2配戴在图1上") )).build(); Map parameters = new HashMap<>(); parameters.put("watermark", false); parameters.put("negative_prompt", ""); MultiModalConversationParam param = MultiModalConversationParam.builder() .apiKey(apiKey) .model("qwen-image-edit") .messages(Collections.singletonList(userMessage)) .parameters(parameters) .build(); MultiModalConversationResult result = conv.call(param); System.out.println(JsonUtils.toJson(result)); System.out.println("输出图像的URL:" + result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("image")); } public static void main(String[] args) { try { call(); } catch (ApiException | NoApiKeyException | UploadFileException | IOException e) { System.out.println(e.getMessage()); } } }