#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Seedream API 图片编辑器 - Python版本
基于原图生成新图片,修改 API_KEY 即可使用
"""
# =================== 配置区域 ===================
API_KEY = "sk-" # 替换为您的API密钥
API_URL = "https://api.yelinai.com/v1/images/generations" # 图片编辑API地址
PROMPT = "Generate a close-up image of a dog lying on lush grass." # 编辑提示词
IMAGE_URL = "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/seedream4_imageToimage.png" # 原图URL
MODEL = "seedream-4-0-250828" # 使用的模型
OUTPUT_DIR = "." # 输出目录
# ==============================================
import requests
import os
import datetime
def edit_image(prompt, image_url, output_dir="."):
"""基于原图生成编辑后的图片"""
print(f"🎨 Seedream 图片编辑器")
print(f"📝 编辑提示: {prompt}")
print(f"🖼️ 原图链接: {image_url[:50]}...")
print("=" * 50)
# API 请求参数
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
payload = {
"model": MODEL,
"prompt": prompt,
"image": image_url,
"sequential_image_generation": "disabled",
"response_format": "url",
"size": "2K",
"stream": False,
"watermark": False
}
try:
print("⏳ 正在编辑图片...")
# 调用 API
response = requests.post(API_URL, headers=headers, json=payload, timeout=60)
if response.status_code != 200:
return False, f"API错误 ({response.status_code}): {response.text}"
# 解析响应
result = response.json()
if "data" not in result or len(result["data"]) == 0:
return False, "API未返回图片数据"
# 获取图片URL
edited_image_url = result["data"][0]["url"]
print(f"🌐 获取编辑图片URL成功")
# 下载图片
print("⬇️ 正在下载编辑后的图片...")
img_response = requests.get(edited_image_url, timeout=30)
img_response.raise_for_status()
# 生成文件名(带时间戳)
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
filename = os.path.join(output_dir, f"edited_{timestamp}.jpg")
# 保存图片
os.makedirs(output_dir, exist_ok=True)
with open(filename, 'wb') as f:
f.write(img_response.content)
file_size = len(img_response.content)
return True, f"✅ 编辑成功: {filename} ({file_size // 1024}KB)"
except Exception as e:
return False, f"编辑失败: {str(e)}"
def main():
"""主函数"""
print("🚀 Seedream API 图片编辑器 - Python版本")
print("=" * 50)
# 检查 API 密钥
if API_KEY == "sk-" or not API_KEY:
print("⚠️ 请先修改代码顶部的 API_KEY")
print(" 将 'sk-' 替换为您的真实API密钥")
print()
print("📋 使用说明:")
print("1. 修改 API_KEY 为您的真实密钥")
print("2. 修改 IMAGE_URL 为您要编辑的图片链接")
print("3. 修改 PROMPT 描述您想要的编辑效果")
print("4. 运行: python3 seedream-image-edit.py")
return
# 执行图片编辑
success, message = edit_image(PROMPT, IMAGE_URL, OUTPUT_DIR)
print(message)
if success:
print()
print("🎉 编辑完成!")
print("💡 提示:修改 PROMPT 和 IMAGE_URL 可以编辑不同的图片")
if __name__ == "__main__":
main()