feat(tools/cogview): Updated cogview tool to support cogview-3 and the latest cogview-3-plus (#8382)

This commit is contained in:
Waffle
2024-09-22 10:14:14 +08:00
committed by GitHub
parent 0665268578
commit 740fad06c1
108 changed files with 6513 additions and 405 deletions

View File

@@ -21,15 +21,22 @@ class CogView3Tool(BuiltinTool):
)
size_mapping = {
"square": "1024x1024",
"vertical": "1024x1792",
"horizontal": "1792x1024",
"vertical_768": "768x1344",
"vertical_864": "864x1152",
"horizontal_1344": "1344x768",
"horizontal_1152": "1152x864",
"widescreen_1440": "1440x720",
"tallscreen_720": "720x1440",
}
# prompt
prompt = tool_parameters.get("prompt", "")
if not prompt:
return self.create_text_message("Please input prompt")
# get size
size = size_mapping[tool_parameters.get("size", "square")]
# get size key
size_key = tool_parameters.get("size", "square")
# cogview-3-plus get size
if size_key != "cogview_3":
size = size_mapping[size_key]
# get n
n = tool_parameters.get("n", 1)
# get quality
@@ -43,16 +50,29 @@ class CogView3Tool(BuiltinTool):
# set extra body
seed_id = tool_parameters.get("seed_id", self._generate_random_id(8))
extra_body = {"seed": seed_id}
response = client.images.generations(
prompt=prompt,
model="cogview-3",
size=size,
n=n,
extra_body=extra_body,
style=style,
quality=quality,
response_format="b64_json",
)
# cogview-3-plus
if size_key != "cogview_3":
response = client.images.generations(
prompt=prompt,
model="cogview-3-plus",
size=size,
n=n,
extra_body=extra_body,
style=style,
quality=quality,
response_format="b64_json",
)
# cogview-3
else:
response = client.images.generations(
prompt=prompt,
model="cogview-3",
n=n,
extra_body=extra_body,
style=style,
quality=quality,
response_format="b64_json",
)
result = []
for image in response.data:
result.append(self.create_image_message(image=image.url))

View File

@@ -42,21 +42,46 @@ parameters:
pt_BR: Image size
form: form
options:
- value: cogview_3
label:
en_US: Square_cogview_3(1024x1024)
zh_Hans: 方_cogview_3(1024x1024)
pt_BR: Square_cogview_3(1024x1024)
- value: square
label:
en_US: Squre(1024x1024)
en_US: Square(1024x1024)
zh_Hans: 方(1024x1024)
pt_BR: Squre(1024x1024)
- value: vertical
pt_BR: Square(1024x1024)
- value: vertical_768
label:
en_US: Vertical(1024x1792)
zh_Hans: 竖屏(1024x1792)
pt_BR: Vertical(1024x1792)
- value: horizontal
en_US: Vertical(768x1344)
zh_Hans: 竖屏(768x1344)
pt_BR: Vertical(768x1344)
- value: vertical_864
label:
en_US: Horizontal(1792x1024)
zh_Hans: 屏(1792x1024)
pt_BR: Horizontal(1792x1024)
en_US: Vertical(864x1152)
zh_Hans: 屏(864x1152)
pt_BR: Vertical(864x1152)
- value: horizontal_1344
label:
en_US: Horizontal(1344x768)
zh_Hans: 横屏(1344x768)
pt_BR: Horizontal(1344x768)
- value: horizontal_1152
label:
en_US: Horizontal(1152x864)
zh_Hans: 横屏(1152x864)
pt_BR: Horizontal(1152x864)
- value: widescreen_1440
label:
en_US: Widescreen(1440x720)
zh_Hans: 宽屏(1440x720)
pt_BR: Widescreen(1440x720)
- value: tallscreen_720
label:
en_US: Tallscreen(720x1440)
zh_Hans: 高屏(720x1440)
pt_BR: Tallscreen(720x1440)
default: square
- name: n
type: number