别再手动P图了用Python调用百度文心AI作画API5分钟批量生成你的专属头像每次打开社交媒体看到别人酷炫的头像总让人心生羡慕——赛博朋克的霓虹光影、水墨古风的意境悠远或是二次元角色的灵动可爱。但自己动手设计PS技术门槛高找设计师成本贵网图又容易撞款。现在只需几行Python代码就能让AI成为你的专属画师。百度文心ERNIE-ViLG作为中文领域最强的跨模态生成模型之一其作画API支持通过自然语言描述直接生成图像。不同于传统教程只讲解API调用本文将带你实战解决真实需求批量生成风格多样的个人头像。从注册账号到代码优化从风格参数调试到批量下载技巧全程聚焦能用、好用的落地细节。1. 准备工作三分钟快速获取API权限1.1 注册百度智能云账号打开 百度智能云官网 点击右上角注册按钮。建议使用常用邮箱注册完成后需进行实名认证支持支付宝/微信快速认证。认证过程通常2分钟内即可完成。1.2 创建AI作画应用登录后按以下步骤操作控制台 → 产品服务 → 人工智能 → 智能创作平台点击立即领取免费资源包新用户可获100次调用额度在应用列表点击创建应用填写基本信息应用名称个人头像生成器应用分类工具/图像生成创建成功后记录下API Key和Secret Key点击显示查看完整密钥密钥相当于API调用的身份证请妥善保管不要泄露。测试阶段建议使用免费额度商业用途需购买付费套餐。1.3 安装必要Python库在终端运行以下命令安装依赖pip install requests pillow python-dotenvrequests用于发送HTTP请求pillow图像处理库用于保存生成的图片python-dotenv管理环境变量可选但推荐建议在项目根目录创建.env文件存储密钥BAIDU_API_KEYyour_api_key_here BAIDU_SECRET_KEYyour_secret_key_here2. 核心代码实现从描述到图像的魔法转换2.1 获取Access TokenAccess Token是调用API的临时凭证有效期30天。创建auth.py文件import requests import os from dotenv import load_dotenv load_dotenv() def get_access_token(): url https://aip.baidubce.com/oauth/2.0/token params { grant_type: client_credentials, client_id: os.getenv(BAIDU_API_KEY), client_secret: os.getenv(BAIDU_SECRET_KEY) } return requests.post(url, paramsparams).json().get(access_token)2.2 提交作画请求创建generate.py实现核心生成逻辑import json import requests from auth import get_access_token def generate_images(prompts, style二次元, resolution1024*1024, num4): url fhttps://aip.baidubce.com/rpc/2.0/ernievilg/v1/txt2img?access_token{get_access_token()} results [] for prompt in prompts: payload json.dumps({ text: prompt, resolution: resolution, style: style, num: num }) headers {Content-Type: application/json} response requests.post(url, headersheaders, datapayload) results.append(response.json().get(data, {}).get(taskId)) return results参数说明prompts描述词列表如[赛博朋克程序员,古风侠客]style支持12种风格常用选项二次元动漫风格写实照片级真实感古风中国传统水墨赛博朋克高科技低生活resolution推荐1024*1024正方形适合头像2.3 下载生成结果创建download.py实现批量下载import requests from PIL import Image from io import BytesIO import os from auth import get_access_token def download_images(task_ids, save_diroutput): if not os.path.exists(save_dir): os.makedirs(save_dir) url fhttps://aip.baidubce.com/rpc/2.0/ernievilg/v1/getImg?access_token{get_access_token()} for task_id in task_ids: payload json.dumps({taskId: task_id}) response requests.post(url, headers{Content-Type: application/json}, datapayload) img_urls response.json().get(data, {}).get(imgUrls, []) for idx, img_info in enumerate(img_urls): img_data requests.get(img_info[image]).content img Image.open(BytesIO(img_data)) img.save(f{save_dir}/{task_id}_{idx}.png) print(fSaved: {save_dir}/{task_id}_{idx}.png)3. 高级技巧打造独一无二的头像库3.1 描述词工程Prompt Engineering好的描述词50%的生成效果。推荐组合公式[主体] [风格] [细节] [构图]主体明确角色如程序员、猫娘风格可与API风格参数叠加如赛博朋克风格细节服装、表情、装饰如戴着VR眼镜构图半身像、正面视角等实战案例prompts [ 赛博朋克风格女程序员紫色霓虹灯光未来感机械臂半身像, 古风男侠客水墨风格手持长剑站在竹林前, 卡通风格柴犬头像大眼睛吐舌头粉色背景 ]3.2 批量生成与优选方案运行以下命令启动批量生成python -c from generate import generate_images; generate_images(prompts[你的描述词], style二次元, num6)建议策略每个描述生成4-6张图API最大支持用num参数控制数量避免资源浪费将满意结果移动到selected目录3.3 风格参数深度调优通过修改style和resolution获得不同效果风格适用场景推荐分辨率示例效果二次元动漫头像1024x1024写实职业照1536x1024古风传统文化1024x1024赛博朋克科技感1024x1536某些风格对分辨率敏感如赛博朋克适合竖版构图。如果生成结果不理想尝试调整分辨率比例。4. 自动化进阶打造专属头像工坊4.1 定时更换头像脚本结合schedule库实现每周自动换头像import schedule import time from generate import generate_images from download import download_images import random import os def job(): themes [赛博朋克, 复古胶片, 像素艺术] prompt f{random.choice(themes)}风格头像{random.choice([男,女])}性 task_ids generate_images([prompt], style二次元) download_images(task_ids) # 设置最新图片为社交平台头像 latest_img sorted(os.listdir(output))[-1] upload_to_social_media(foutput/{latest_img}) schedule.every().monday.at(09:00).do(job) while True: schedule.run_pending() time.sleep(60)4.2 风格迁移技巧对生成结果不满意用Pillow进行后处理from PIL import Image, ImageFilter def apply_effect(img_path, effectsketch): img Image.open(img_path) if effect sketch: return img.filter(ImageFilter.CONTOUR) elif effect oil: return img.filter(ImageFilter.SMOOTH) return img4.3 异常处理与日志完善代码健壮性import logging logging.basicConfig(filenameavatar_gen.log, levellogging.INFO) try: task_ids generate_images(prompts) if not task_ids: raise ValueError(No task ID returned) download_images(task_ids) except Exception as e: logging.error(fGeneration failed: {str(e)}) # 自动重试逻辑
别再手动P图了!用Python调用百度文心AI作画API,5分钟批量生成你的专属头像
别再手动P图了用Python调用百度文心AI作画API5分钟批量生成你的专属头像每次打开社交媒体看到别人酷炫的头像总让人心生羡慕——赛博朋克的霓虹光影、水墨古风的意境悠远或是二次元角色的灵动可爱。但自己动手设计PS技术门槛高找设计师成本贵网图又容易撞款。现在只需几行Python代码就能让AI成为你的专属画师。百度文心ERNIE-ViLG作为中文领域最强的跨模态生成模型之一其作画API支持通过自然语言描述直接生成图像。不同于传统教程只讲解API调用本文将带你实战解决真实需求批量生成风格多样的个人头像。从注册账号到代码优化从风格参数调试到批量下载技巧全程聚焦能用、好用的落地细节。1. 准备工作三分钟快速获取API权限1.1 注册百度智能云账号打开 百度智能云官网 点击右上角注册按钮。建议使用常用邮箱注册完成后需进行实名认证支持支付宝/微信快速认证。认证过程通常2分钟内即可完成。1.2 创建AI作画应用登录后按以下步骤操作控制台 → 产品服务 → 人工智能 → 智能创作平台点击立即领取免费资源包新用户可获100次调用额度在应用列表点击创建应用填写基本信息应用名称个人头像生成器应用分类工具/图像生成创建成功后记录下API Key和Secret Key点击显示查看完整密钥密钥相当于API调用的身份证请妥善保管不要泄露。测试阶段建议使用免费额度商业用途需购买付费套餐。1.3 安装必要Python库在终端运行以下命令安装依赖pip install requests pillow python-dotenvrequests用于发送HTTP请求pillow图像处理库用于保存生成的图片python-dotenv管理环境变量可选但推荐建议在项目根目录创建.env文件存储密钥BAIDU_API_KEYyour_api_key_here BAIDU_SECRET_KEYyour_secret_key_here2. 核心代码实现从描述到图像的魔法转换2.1 获取Access TokenAccess Token是调用API的临时凭证有效期30天。创建auth.py文件import requests import os from dotenv import load_dotenv load_dotenv() def get_access_token(): url https://aip.baidubce.com/oauth/2.0/token params { grant_type: client_credentials, client_id: os.getenv(BAIDU_API_KEY), client_secret: os.getenv(BAIDU_SECRET_KEY) } return requests.post(url, paramsparams).json().get(access_token)2.2 提交作画请求创建generate.py实现核心生成逻辑import json import requests from auth import get_access_token def generate_images(prompts, style二次元, resolution1024*1024, num4): url fhttps://aip.baidubce.com/rpc/2.0/ernievilg/v1/txt2img?access_token{get_access_token()} results [] for prompt in prompts: payload json.dumps({ text: prompt, resolution: resolution, style: style, num: num }) headers {Content-Type: application/json} response requests.post(url, headersheaders, datapayload) results.append(response.json().get(data, {}).get(taskId)) return results参数说明prompts描述词列表如[赛博朋克程序员,古风侠客]style支持12种风格常用选项二次元动漫风格写实照片级真实感古风中国传统水墨赛博朋克高科技低生活resolution推荐1024*1024正方形适合头像2.3 下载生成结果创建download.py实现批量下载import requests from PIL import Image from io import BytesIO import os from auth import get_access_token def download_images(task_ids, save_diroutput): if not os.path.exists(save_dir): os.makedirs(save_dir) url fhttps://aip.baidubce.com/rpc/2.0/ernievilg/v1/getImg?access_token{get_access_token()} for task_id in task_ids: payload json.dumps({taskId: task_id}) response requests.post(url, headers{Content-Type: application/json}, datapayload) img_urls response.json().get(data, {}).get(imgUrls, []) for idx, img_info in enumerate(img_urls): img_data requests.get(img_info[image]).content img Image.open(BytesIO(img_data)) img.save(f{save_dir}/{task_id}_{idx}.png) print(fSaved: {save_dir}/{task_id}_{idx}.png)3. 高级技巧打造独一无二的头像库3.1 描述词工程Prompt Engineering好的描述词50%的生成效果。推荐组合公式[主体] [风格] [细节] [构图]主体明确角色如程序员、猫娘风格可与API风格参数叠加如赛博朋克风格细节服装、表情、装饰如戴着VR眼镜构图半身像、正面视角等实战案例prompts [ 赛博朋克风格女程序员紫色霓虹灯光未来感机械臂半身像, 古风男侠客水墨风格手持长剑站在竹林前, 卡通风格柴犬头像大眼睛吐舌头粉色背景 ]3.2 批量生成与优选方案运行以下命令启动批量生成python -c from generate import generate_images; generate_images(prompts[你的描述词], style二次元, num6)建议策略每个描述生成4-6张图API最大支持用num参数控制数量避免资源浪费将满意结果移动到selected目录3.3 风格参数深度调优通过修改style和resolution获得不同效果风格适用场景推荐分辨率示例效果二次元动漫头像1024x1024写实职业照1536x1024古风传统文化1024x1024赛博朋克科技感1024x1536某些风格对分辨率敏感如赛博朋克适合竖版构图。如果生成结果不理想尝试调整分辨率比例。4. 自动化进阶打造专属头像工坊4.1 定时更换头像脚本结合schedule库实现每周自动换头像import schedule import time from generate import generate_images from download import download_images import random import os def job(): themes [赛博朋克, 复古胶片, 像素艺术] prompt f{random.choice(themes)}风格头像{random.choice([男,女])}性 task_ids generate_images([prompt], style二次元) download_images(task_ids) # 设置最新图片为社交平台头像 latest_img sorted(os.listdir(output))[-1] upload_to_social_media(foutput/{latest_img}) schedule.every().monday.at(09:00).do(job) while True: schedule.run_pending() time.sleep(60)4.2 风格迁移技巧对生成结果不满意用Pillow进行后处理from PIL import Image, ImageFilter def apply_effect(img_path, effectsketch): img Image.open(img_path) if effect sketch: return img.filter(ImageFilter.CONTOUR) elif effect oil: return img.filter(ImageFilter.SMOOTH) return img4.3 异常处理与日志完善代码健壮性import logging logging.basicConfig(filenameavatar_gen.log, levellogging.INFO) try: task_ids generate_images(prompts) if not task_ids: raise ValueError(No task ID returned) download_images(task_ids) except Exception as e: logging.error(fGeneration failed: {str(e)}) # 自动重试逻辑