Gemini 2.0 Flash有两个可以生图的模型:gemini-2.0-flash-exp-image-generation和gemini-2.0-flash-preview-image-generation,本文分享下便携AI聚合API如何使用Gemini这两个模型画图。
一、前言
示例中的api_key
可以在网站后台获取,获取方法:《便携AI聚合API新建令牌(API key)教程》。
必须要使用流模式,即指定stream为True。
二、调用方法
可以通过OpenAI的chat模式来调用Gemini 2.0 Flash画图模型,模型名称:gemini-2.0-flash-exp-image-generation
和gemini-2.0-flash-preview-image-generation
,模型会通过流模式直接返回生成图片的base64码,可以结合以下代码来解析base64:
def save_base64_image(markdown_line, filename_prefix="gemini_output"): # 提取 base64 字符串 import re match = re.search(r'!\[.*?\]\(data:image/(png|jpeg);base64,(.*?)\)', markdown_line) if match: image_format = match.group(1) # png 或 jpeg base64_data = match.group(2) # 解码并保存 image_data = base64.b64decode(base64_data) filename = f"{filename_prefix}.{image_format}" with open(f"{filename}", "wb") as f: f.write(image_data) print(f"图片已保存为 {filename}") else: print("未找到合法的 base64 图片数据")
调用方式(以python为例):
def gemini_2_flash_image_generation(): api_key = "sk-dasfasdf" url = f'https://api.bianxie.ai/v1/chat/completions' headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {api_key}' } data = { 'model': 'gemini-2.0-flash-preview-image-generation', 'messages': [{'role': 'user', 'content': 'A cat in a tree'}], 'stream': True } response = requests.post(url, headers=headers, json=data) for line in response.iter_lines(): if line: decoded_line = line.decode("utf-8") if " if decoded_line.startswith("data: "): payload = decoded_line[6:] if payload == "[DONE]": break try: import json parsed = json.loads(payload) content = parsed["choices"][0]["delta"].get("content") if content: print(content, end="", flush=True) except Exception as e: print("解析失败:", e)
结果如下: