便携AI网
AI的百科全书

Gemini 2.0 Flash Image Generation API使用教程

Gemini 2.0 Flash有两个可以生图的模型:gemini-2.0-flash-exp-image-generationgemini-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-generationgemini-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 "![image](data:image/" in decoded_line: #如果有base64返回,则保存这张图
                save_base64_image(decoded_line)
            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)

结果如下:

Gemini 2.0 Flash Image Generation API使用教程

赞(0)
未经允许不得转载:便携AI » Gemini 2.0 Flash Image Generation API使用教程