diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c249f497..3948aab36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## Unreleased -- 火山方舟 Seedream 图片生成显式关闭“AI 生成”水印,并由后端下载方舟 CDN 结果后写入服务器或对象存储,恢复素材库自动入库。 +- 火山方舟 Seedream 图片生成显式关闭“AI 生成”水印,并要求生成响应直接返回 Base64 后写入服务器或对象存储,避免为持久化结果再次请求方舟 CDN;中转服务忽略返回格式时仍保留 URL 下载兼容。 - 项目开源协议由 AGPL-3.0 调整为 MIT,保留上游及项目贡献者版权声明。 - 修复任务中心等资源入口仍由应用服务器转发对象存储媒体的问题:配置 CDN 加速域名后,登录资源、公开画布分享和管理员媒体预览统一重定向到 CDN;内部 Blob 读取保留同源代理兼容。 diff --git a/backend/internal/service/provider.go b/backend/internal/service/provider.go index 747e3f65e..fe43e9ff9 100644 --- a/backend/internal/service/provider.go +++ b/backend/internal/service/provider.go @@ -1067,10 +1067,11 @@ func volcengineArkImageDataURLs(ctx context.Context, config providerConfig, payl func volcengineArkImageBody(input canvasGenerationInput) (map[string]interface{}, error) { body := map[string]interface{}{ - "model": input.Config.Model, - "prompt": withSystemPrompt(input.Config, input.Prompt), - "n": 1, - "watermark": false, + "model": input.Config.Model, + "prompt": withSystemPrompt(input.Config, input.Prompt), + "n": 1, + "response_format": "b64_json", + "watermark": false, } if key, value := imageSizeParameter(input.ImageCapability, input.Config.Size); value != "" { if key == "size" { diff --git a/backend/internal/service/provider_test.go b/backend/internal/service/provider_test.go index a8e30b920..13190b4ab 100644 --- a/backend/internal/service/provider_test.go +++ b/backend/internal/service/provider_test.go @@ -180,6 +180,9 @@ func TestVolcengineArkImageBodyUsesJSONReferencesAndDownscalesSize(t *testing.T) if watermark, ok := body["watermark"].(bool); !ok || watermark { t.Fatalf("watermark = %#v, want false", body["watermark"]) } + if responseFormat, _ := body["response_format"].(string); responseFormat != "b64_json" { + t.Fatalf("response_format = %#v, want b64_json", body["response_format"]) + } size, _ := body["size"].(string) parts := strings.Split(size, "x") if len(parts) != 2 { diff --git a/web/src/services/api/image.ts b/web/src/services/api/image.ts index 4f83e98c0..fede3cce3 100644 --- a/web/src/services/api/image.ts +++ b/web/src/services/api/image.ts @@ -919,6 +919,7 @@ export async function requestGeneration(config: AiConfig, prompt: string, option model: requestConfig.model, prompt: withSystemPrompt(requestConfig, prompt), n, + response_format: "b64_json", watermark: false, ...(normalizedRequestSize ? { [normalizedRequestSize.parameter]: normalizedRequestSize.value } : {}), } @@ -1014,6 +1015,7 @@ export async function requestEdit(config: AiConfig, prompt: string, references: model: requestConfig.model, prompt: withSystemPrompt(requestConfig, requestPrompt), n, + response_format: "b64_json", watermark: false, ...(requestSize ? { [requestSize.parameter]: requestSize.value } : {}), ...(images.length === 1 ? { image: images[0] } : images.length > 1 ? { image: images } : {}),