Skip to content

Gitee AI 图片生成与编辑

agents-flex-image-gitee 适配 Gitee AI 模力方舟的同步图片接口。公共层始终调用 generate():未提供输入图片时执行文生图,提供一张输入图片时执行图片编辑。

添加依赖

xml
<dependency>
    <groupId>com.agentsflex</groupId>
    <artifactId>agents-flex-image-gitee</artifactId>
    <version>${agents-flex.version}</version>
</dependency>

文本生成图片

java
GiteeImageModelConfig config = new GiteeImageModelConfig();
config.setApiKey(System.getenv("GITEE_AI_API_KEY"));
config.setModel(GiteeImageModels.FLUX_1_DEV);

GenerateImageRequest request = new GenerateImageRequest();
request.setPrompt("雨后的江南街巷,电影感,自然光");
request.setSize(1024, 1024);
request.setN(1);
request.setResponseFormat("url");

ImageResponse response = new GiteeImageModel(config).generate(request);

请求会同步发送到 /v1/images/generations,支持 modelpromptsizeusernresponse_formatn 的有效范围为 1 到 4,返回格式可以是 urlb64_json

图片编辑

给请求增加一张 inputImages 后,同一个 generate() 会自动改用 /v1/images/edits 和 multipart 请求:

java
GenerateImageRequest request = new GenerateImageRequest();
request.setModel(GiteeImageModels.QWEN_IMAGE_EDIT);
request.setPrompt("把天空替换成晚霞,保留建筑结构");
request.addInputImage(Image.ofUrl("https://example.com/source.png"));
request.setN(1);

ImageResponse response = new GiteeImageModel(config).generate(request);

输入图片可以是远程 URL、字节或 Base64:

java
request.addInputImage(Image.ofBytes(imageBytes, "image/png"));

Gitee 编辑接口当前只接受一张输入图片,并且 n 只能为 1。

掩膜编辑

掩膜属于供应商参数,通过 options 传入。可以使用 Image、URL、FileInputStreambyte[]

java
request.addOption(GiteeImageModel.OPTION_MASK,
    Image.ofBytes(maskPngBytes, "image/png"));

掩膜应为 PNG,大小不超过 4 MB,并与原图分辨率一致。透明通道标识编辑区域。

DreamO 模型的任务类型同样通过 options 传入:

java
request.addOption(GiteeImageModel.OPTION_TASK_TYPES,
    Collections.singletonList("style"));

可选值为 ipidstyle

配置

默认配置如下:

配置默认值
endpointhttps://ai.gitee.com
requestPath/v1/images/generations
editPath/v1/images/edits
modelflux-1-schnell

单次请求通过 request.setModel(...) 设置的模型优先于 Config。其他 Gitee 专属字段可以通过 request.addOption(key, value) 透传。