基于 Google AI Studio 的 ai-studio-image 技能实战:用 Gemini/Imagen 生成 100% 手机质感的人性化图片
【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills
导读
ai-studio-image 是 agentic-awesome-skills 仓库中的一张社区技能(Skill),它的目标不是"生成一张漂亮的 AI 图",而是把任何文本描述变成一张看起来像真人用手机随手拍下的照片——有传感器噪点、有轻微手抖、有不够完美的构图、有真实的皮肤纹理。本文以 SKILL.md 为骨架,结合 scripts 下的完整实现源码,完整讲解从 API Key 配置、依赖安装、五步生成工作流、五层人性化提示词引擎,到模型选择、模板库、批量生成与排障的全部细节。读完本文,你可以直接在命令行中复现完整的"人性化图片生成"流程,并理解其底层实现原理。
一、技能定位:AI 图片与真实照片之间差在哪
原文档用一句话点出了本技能的核心观察:一张 AI 图片与一张真实照片的差别,往往在于那些"几乎察觉不到"的细节——手机传感器的轻微颗粒感、并不完美的光线、略偏离中心的取景、小镜头特有的景深。
这个理念被直接写进了技能的能力描述(SKILL.md):生成 via Google AI Studio(Gemini)的人性化图片,产出 influencer(网红生活方式)或 educacional(教育/教学)两种风格、带有自然光线和细微不完美的写实照片。因此这张技能适用于以下场景:
- 用户提到"gera imagem / gerar foto / criar imagem"(生成图片)类诉求;
- 用户提到"foto realista"(写实照片)、"imagem humanizada"(人性化图片)、"foto influencer"(网红照片)等关键词;
- 需要为社交媒体、教程课件、品牌内容提供"像真人拍摄"的视觉素材。
反之,当任务与图片生成无关、存在更简单的专用工具、或用户只需要通用能力时,不应启用该技能(SKILL.md 的 When to Use / Do Not Use 章节)。
二、环境准备:API Key 与依赖安装
2.1 获取并配置 API Key
使用本技能前需要 Google AI Studio 的 API Key,完整步骤见 references/setup-guide.md:
- 访问 aistudio.google.com/apikey 页面;
- 点击 "Create API Key",选择或新建一个 Google Cloud 项目;
- 复制生成的 Key。
配置方式有两种,推荐方案 A:.env文件(可同时配置多把 Key 做自动故障转移):
GEMINI_API_KEY=sua-api-key-principal GEMINI_API_KEY_BACKUP_1=key-backup-1 GEMINI_API_KEY_BACKUP_2=key-backup-2方案 B:环境变量(SKILL.md 第三节)。
# Windows CMD set GEMINI_API_KEY=sua-api-key # PowerShell $env:GEMINI_API_KEY="sua-api-key" # Linux/Mac export GEMINI_API_KEY=sua-api-key源码层面的 Key 读取顺序(scripts/config.py 的get_api_key/get_all_api_keys)依次是:环境变量GEMINI_API_KEY→ 技能根目录.env中的GEMINI_API_KEY→GEMINI_API_KEY_BACKUP_1→GEMINI_API_KEY_BACKUP_2。get_all_api_keys会收集所有可用 Key 组成列表,供主脚本在单把 Key 失败或触发限流时轮换重试。
2.2 安装依赖
按 requirements.txt 安装(要求 Python 3.10+):
pip install -r C:\Users\renat\skills\ai-studio-image\scripts\requirements.txt或手动安装:
pip install google-genai Pillow python-dotenvgoogle-genai:官方 Gemini/Imagen 生成接口;Pillow:处理参考图片(Gemini Pro Image 的 reference images 功能依赖它);python-dotenv:加载.env文件。
主脚本 generate.py 启动时会通过_check_dependencies()校验google.genai是否可用,缺失时直接打印安装提示并退出。
三、快速上手:生成你的第一张图片
python C:\Users\renat\skills\ai-studio-image\scripts\generate.py --prompt "mulher jovem tomando cafe em cafeteria" --mode influencer --format square建议先跑两个自检命令确认环境就绪(references/setup-guide.md):
# 列出所有可用模型及其 ID / 最大生成数量 / 最大分辨率 python C:\Users\renat\skills\ai-studio-image\scripts\generate.py --list-models # 列出所有格式、宽高比与别名 python C:\Users\renat\skills\ai-studio-image\scripts\generate.py --list-formats生成结果默认写入技能目录下的data/outputs/(由 config.py 的OUTPUTS_DIR定义,目录不存在会自动创建)。每一张图片都会附带一个.meta.json元数据文件(generate.py 的save_image函数),记录原始提示词、人性化后提示词、模式、格式、宽高比、模型、分辨率、生成耗时、所用 Key 序号等完整信息;若开启了save_prompt,还会额外保存一份last_prompt_*.txt,方便回溯对比"原始 prompt → 人性化 prompt"。
四、核心工作流:从需求到成图的五个步骤
原文档定义的主流程如下(SKILL.md Workflow Principal 章节),它是使用本技能必须遵守的完整链路。
第 1 步:确定模式(Modo)
| 模式 | 何时使用 | 特征 |
|---|---|---|
| influencer | 社交平台帖子、生活方式、个人品牌 | 有吸引力但自然的美学、色彩鲜明但不过度饱和、能抓住注意力的构图 |
| educacional | 课程材料、教程、演示、信息图 | 干净、专业的视觉,聚焦内容,元素清晰易读 |
用户未指定时:社交内容默认influencer,教学/演示相关默认educacional。
对应到源码(config.py 的MODES):两种模式各有一套base_style(基础风格句)与avoid(禁忌句)。例如 influencer 模式会注入"真实的社媒照片、有吸引力的生活美学"等描述,同时明确禁止"棚拍感、完美对称构图、磨皮塑料感皮肤、广告/商业摄影感、过度饱和调色、恐怖谷脸";educacional 模式则强调"干净专业、视线聚焦教学内容、不杂乱、文字可读",并禁止"剪贴画/库存图感、杂乱背景、过于冷峻的机构氛围"。
第 2 步:确定格式(Formato)
原文档给出的四种基础格式:
| 格式 | 宽高比 | 理想用途 |
|---|---|---|
square | 1:1 | Instagram 信息流、Facebook、个人主页 |
portrait | 3:4 | Instagram portrait、Pinterest |
landscape | 16:9 | YouTube 缩略图、横幅、桌面 |
stories | 9:16 | Instagram/Facebook Stories、TikTok、Reels |
源码中实际支持远不止四种(config.py 的IMAGE_FORMATS):还包括portrait-45(4:5,Instagram 最优竖版)、portrait-23(2:3,海报/打印)、landscape-43(4:3,演示)、landscape-32(3:2,35mm 摄影)、landscape-54(5:4,近方形/8x10)、widescreen(16:9)、ultrawide(21:9,电影横幅)。CLI 的--format参数同时支持别名(FORMAT_ALIASES),例如1:1→square、16:9→widescreen、9:16→stories、pinterest→portrait-23、youtube→widescreen 等,也支持直接写4:5、16:9这类宽高比字面量(由 prompt_engine.py 的resolve_format解析)。
第 3 步:转换提示词(最重要的环节)
原则:永远不要直接把用户的 prompt 发给 API,必须先经过人性化引擎(humanization engine)。
python C:\Users\renat\skills\ai-studio-image\scripts\prompt_engine.py --prompt "prompt do usuario" --mode influencer这一步对应源码中 prompt_engine.py 的humanize_prompt。它遵循 Google 官方的核心提示词原则——"Describe the scene, don't just list keywords"(描述场景,而不是罗列关键词),将用户一句话扩展为一篇多段落的分镜叙事。原文档概括为五层"真实感注入",源码中每层都分为core(核心,全部等级生效)与enhanced(增强,仅ultra/natural等级生效)两组英文修饰语:
- 第 1 层——设备与技法(Device & Technique):智能手机而非专业单反拍摄、小镜头天然景深、无闪光灯仅环境光、低光下的传感器噪点;增强项包括广角边缘畸变、手机自动对焦产生的背景散景、高对比边缘的轻微色差。
- 第 2 层——自然光线(Natural Lighting):间接阳光/golden hour/窗光、柔和有机的阴影、无影棚灯、表面自然反光;增强项包括皮肤/玻璃/金属上的微妙高光、混合光源带来的色温自然变化、光衰减塑造的立体感。
- 第 3 层——人性不完美(Human Imperfections):非数学对称的略偏构图、背景轻微失焦的浅景深、手持微抖带来的非像素级锐度、环境中未被刻意布置的随机杂物;增强项包括略歪的地平线、显生活气息的场景。
- 第 4 层——真实性(Authenticity):真诚随意的面部表情而非棚拍姿势、日常着装、可见毛孔与细微瑕疵的真实皮肤(拒绝瓷娃娃皮肤)、写实的身体比例;增强项包括被偷拍式的不自知瞬间、自然发丝纹理、手部关节褶皱与青筋。
- 第 5 层——环境语境(Environmental Context):真实场景而非通用影棚背景、场景中的日常物件、与环境及时段一致的照明;增强项包括前景/中景/背景的层次深度、空气中的尘埃/蒸汽等氛围元素。
humanize_prompt最终按 8 个叙事段落组装 prompt:主叙述开场(带自动检测的 shot type)→ 模式风格叙事 → 人性化层修饰(超 6 条时拆成两段)→ 等级专属修饰 → 光照修饰 → 模板上下文 → 禁忌句("不要做什么")→ 真实性锚点句("最终图像必须与真人用手机在日常生活里拍的照片完全无法区分")。同时它会用RATE_LIMITS["max_prompt_tokens"] * 4(约 480 token ≈ 1800 字符)作为上限,超长时自动降级为保留核心要素的紧凑版。
此外,prompt_engine.py内置一个智能分析器analyze_prompt,通过关键词自动推断模式、格式、光照、人性化等级、景别(shot type)、模型与分辨率,可直接用--analyze调用:
python C:\Users\renat\skills\ai-studio-image\scripts\prompt_engine.py --prompt "professor explicando na lousa com luz de manha" --analyze例如命中"professor/lousa/quadro"会推断educacional,命中"manha"会推断morning光照。景别检测(_detect_shot_type)支持 close-up、medium、wide、top-down、over-shoulder、pov 等 7 类,默认回退为 medium(prompt_engine.py)。
第 4 步:生成图片
python C:\Users\renat\skills\ai-studio-image\scripts\generate.py \ --prompt "prompt humanizado gerado no passo anterior" \ --mode influencer \ --format square \ --model gemini-2-flash-exp \ --output C:\Users\renat\skills\ai-studio-image\data\outputs\generate.py 的generate()是主入口,内部流程为:安全检查 → 获取全部 Key → 解析格式别名 → 人性化 prompt(可用--skip-humanization跳过)→ 按模型类型分派 Imagen 或 Gemini 生成 → 多 Key/多轮重试 → 落盘图片与元数据。
两个生成分支的实现要点:
- Imagen 系列(
imagen-4/imagen-4-ultra/imagen-4-fast):走generate_with_imagen,通过client.models.generate_images+GenerateImagesConfig,支持number_of_images(最多 4 张)、aspect_ratio、person_generation(人物生成策略)与 2K 分辨率(imagen-4-fast不支持 2K,源码中对"fast"模型会跳过image_size参数)。 - Gemini 系列(
gemini-2-flash-exp/gemini-flash-image/gemini-pro-image):走generate_with_gemini,通过client.models.generate_content,response_modalities=["TEXT", "IMAGE"];支持aspect_ratio(gemini-2-flash-exp的配置中supports_aspect_ratio=False,源码会据此回退为不带 ImageConfig 的简化请求)、2K/4K 分辨率(仅 pro 模型)、以及gemini-pro-image独有的一批参考图片(--reference-images,最多 14 张:6 个物体 + 5 个人物,用于角色/物品一致性)。
第 5 步:展示与迭代
生成后向用户展示结果。原文档给出的常见调整方向:
- 重打光(Reluz):调整光线;
- 重新取景(Reenquadrar):调整构图;
- 更自然/更精致:调整人性化等级;
- 换场景:改变环境。
可用模型总览
原文档的推荐顺序与价格表(付费模型必须显式加--force-paid):
| 模型 | 速度 | 质量 | 成本 | 适用 |
|---|---|---|---|---|
gemini-2-flash-exp | 快 | 高 | 免费 | 默认,始终优先 |
imagen-4 | 中 | 高 | $0.03/张 | 常规高质量 |
imagen-4-ultra | 慢 | 最高 | $0.06/张 | 印刷、2K |
imagen-4-fast | 快 | 好 | $0.02/张 | 大批量 |
gemini-flash-image | 快 | 高 | $0.039/张 | 图片编辑 |
gemini-pro-image | 中 | 最高+4K | $0.134/张 | 参考图、4K、文本渲染 |
以上成本数据来自源码 config.py 的MODELS表(cost_per_image字段)与PAID_MODELS/FREE_MODELS集合,以及原文档模型表。源码里还实现了费用安全阀:safety_check_model会拦截所有付费模型——当环境变量SAFETY_BLOCK_PAID_MODELS默认为true时,使用付费模型必须显式追加--force-paid才会放行;safety_check_daily_limit则通过统计data/outputs/*.meta.json中当天的生成数,校验SAFETY_MAX_IMAGES_PER_DAY(默认 50)的每日限额。这意味着即使批量任务脚本误选了付费模型,也不会产生意外账单。
五、模板库:开箱即用的常见场景
用以下命令查看全部模板:
python C:\Users\renat\skills\ai-studio-image\scripts\templates.py --list python C:\Users\renat\skills\ai-studio-image\scripts\templates.py --list --mode influencer # 按模式过滤 python C:\Users\renat\skills\ai-studio-image\scripts\templates.py --show cafe-lifestyle # 查看单个模板详情 python C:\Users\renat\skills\ai-studio-image\scripts\templates.py --search cafe # 按 tag 搜索Influencer 模式模板(templates.py 的INFLUENCER_TEMPLATES):
| 模板 | 说明 |
|---|---|
cafe-lifestyle | 咖啡馆/餐厅里拿着饮品食物的人 |
outdoor-adventure | 户外活动、自然、旅行 |
workspace-minimal | 精致的办公桌、居家办公 |
fitness-natural | 健身/健康,自然观感 |
food-flat-lay | 俯拍食物,随性 flat lay |
urban-street | 都市街景、street style |
golden-hour-portrait | 日落金光人像 |
mirror-selfie | 镜前自拍,随意真实 |
product-in-use | 产品被人自然使用 |
behind-scenes | 幕后花絮、真实日常 |
Educacional 模式模板(EDUCATIONAL_TEMPLATES):
| 模板 | 说明 |
|---|---|
tutorial-step | 演示教程步骤的人 |
whiteboard-explain | 在白板/黑板前讲解的人 |
hands-on-demo | 双手实操演示 |
before-after | 前后对比 |
tool-showcase | 正在使用的工具/软件 |
classroom-natural | 教室/工作坊环境 |
infographic-human | 人指向数据/图表 |
interview-setup | 访谈/播客场景 |
screen-recording-human | 抱着笔记本展示屏幕的人 |
team-collaboration | 团队协作场景 |
使用模板生成图片时,可以叠加--custom注入个性化细节,模板自带的suggested_format/suggested_lighting/suggested_humanization会自动覆盖对应参数(generate.py 的模板分支逻辑):
python C:\Users\renat\skills\ai-studio-image\scripts\generate.py \ --template cafe-lifestyle \ --custom "mulher ruiva, 30 anos, lendo livro" \ --format square六、人性化等级(Nível de Humanização)
控制注入多少"不完美"(默认natural):
| 等级 | 效果 |
|---|---|
ultra | 最大真实感——看起来 100% 是手机随手拍 |
natural(默认) | 质量与真实感的完美平衡 |
polished | 更干净,依然自然但更有审美用心 |
editorial | 杂志风格,有制作感的自然 |
python C:\Users\renat\skills\ai-studio-image\scripts\generate.py \ --prompt "..." --humanization natural源码中四个等级各有一套专属修饰语(config.py 的HUMANIZATION_LEVELS),例如ultra会注入"老款手机轻微降质、阴影处明显噪点颗粒、明显偏离中心且略倾斜的构图、手持微颤运动模糊、镜头边缘指纹污渍、未经任何滤镜处理、自动曝光不完美"等修饰;editorial则注入"杂志级构图但仍显随性、专业自然光但无可见人工光源、健康自然皮肤加极轻柔焦、有品牌感的统一配色"。
七、光照与时段(Hora do Dia)
光线对成片影响巨大,原文档提供 6 个选项:
| 选项 | 说明 |
|---|---|
morning | 柔和的晨光,冷暖过渡 |
golden-hour | 日落/日出,金色调 |
midday | 正午硬光,阴影鲜明 |
overcast | 阴天,均匀漫射光 |
night | 人造暖光,夜景 |
indoor | 室内混合光 |
源码中LIGHTING_OPTIONS实际还额外支持blue-hour(蓝调时刻,日落后冷蓝天空配暖色城市灯光)与shade(开放阴影,反射光柔和、人像友好)。各选项均带 3~4 条英文光照修饰句,会作为独立叙事段落拼入最终 prompt。配合--analyze时,光照也可由关键词自动推断("noite/night/bar/neon"→night,"nublado/chuva"→overcast 等)。
八、批量生成、CLI 全参数与周边集成
8.1 批量生成多个变体
python C:\Users\renat\skills\ai-studio-image\scripts\generate.py \ --prompt "..." --variations 4 --format square--variations取 1~4,最终数量还会被模型上限(max_images)钳制:Imagen 系列每请求最多 4 张,Gemini 系列每请求 1 张。
8.2 CLI 参数速查
generate.py 的完整参数表:
- 输入:
--prompt(直接描述)、--template+--custom(模板生成); - 风格:
--mode(influencer/educacional)、--format(名称、宽高比或别名)、--humanization(ultra/natural/polished/editorial)、--lighting(morning/golden-hour/midday/overcast/night/indoor/blue-hour/shade)、--shot-type(景别,如 close-up/medium/wide/top-down/pov); - 模型与质量:
--model(六个模型之一)、--resolution(1K/2K/4K)、--variations(1~4); - 高级:
--reference-images(仅 Gemini Pro Image,参考图路径列表)、--person-generation(dont_allow/allow_adult/allow_all,默认 allow_adult,注意 allow_all 在 EU/UK/CH/MENA 不可用)、--skip-humanization(跳过人性化直接发送原 prompt)、--force-paid(显式确认使用付费模型); - 输出与工具:
--output(自定义输出目录)、--analyze(仅分析并建议配置)、--list-models、--list-formats、--json(结构化输出)。
8.3 与 Instagram / Canva 的集成
原文档给出了两条扩展用法:
- Instagram Skill 联动:先用
ai-studio-image生成照片,再用仓库中的instagram技能直接发布并附带优化过的文案(SKILL.md 的 Instagram Skill 章节); - Canva 集成:生成的图片可送入 Canva 继续叠加文字/品牌元素。
需要说明的是,这两条属于原文档中与仓库其他技能协作的用法指引,核心链路仍是本技能自身的生成管线。
九、进阶提示词工程要点
references/prompt-engineering.md 总结了从"能用"到"惊艳"的关键手法:
- 叙事优于关键词:多段描述性的 prompt 优于散装关键词列表,这是 Google 官方建议的核心理念;
- 模拟手机相机:浅景深(小镜头 bokeh)、传感器噪点(尤其弱光)、广角边缘畸变、不完美的自动曝光、有机颗粒纹理;
- 真实表情:不要棚拍姿势,改用"和朋友聊天时笑到一半被抓拍""低头看手机微微带笑""专注工作没注意镜头"这类瞬间;
- 有生命的环境:"背景虚化的其他顾客""用过留有刀痕的砧板和切了一半的蔬菜""带着咖啡渍圆环的桌面";
- 摄影术语表:golden hour / blue hour / overcast diffused、85mm 人像头 / 35mm 广角、f/1.8 浅景深、三分法 / 负空间 / 前中后景分层、可见毛孔与织物纹理等;
- 三种复杂度范例:简单(一句话)→ 中等(加环境与表情)→ 高级(完整叙事 + 拍摄方式 + 皮肤细节 + 情感收尾),供对照学习;
- 常见错误清单:prompt 过短、堆关键词、要求"完美"、忽略环境、不指定相机、追求"完美皮肤"、影棚光、模特姿势。
另外原文档还提到 Google 对图片内文本的限制:Imagen 系列单图文本上限25 字符、最多 3 个不同短语,复杂文本渲染应改用gemini-pro-image(config.py 的RATE_LIMITS与 prompt-engineering.md)。Gemini Pro 系列还支持多轮对话式改图("把咖啡杯左移一点""光线调暖一些")、14 张参考图(6 物体 + 5 人物)、Thinking Mode(生成前先构思构图)与 Search Grounding(结合实时网络信息生成)。
十、故障排查与最佳实践
10.1 常见问题对照表
原文档与 references/setup-guide.md 中的排障表合并如下:
| 问题 | 原因 | 解决 |
|---|---|---|
GEMINI_API_KEY not found | 未配置 Key | 配置环境变量或创建.env |
| 403 Forbidden | Key 无权限 | 在 Google Cloud 检查项目权限 |
| 429 / quota exceeded / rate limited | 请求过多 | 等待限流重置、升级套餐、或借助备份 Key 自动轮换 |
image blocked | 触发内容限制 | 调整 prompt,避免受限内容 |
| Model not found | 模型不可用 | 换用imagen-4等模型 |
| low quality output | 人性化/模型不合适 | 提升--humanization ultra,尝试其他模型 |
| Empty response | prompt 过于笼统 | 补充更多场景细节 |
从源码看,generate.py 的重试机制已经内置了对 429 /RESOURCE_EXHAUSTED的处理:自动从服务端响应中提取retryDelay(上限 60 秒)等待后重试,最多 3 轮;中途某把 Key 失败会自动切到下一把备份 Key。
10.2 使用建议(原文档 Best Practices / Common Pitfalls / Limitations)
- 提供清晰、具体的项目背景与需求上下文,效果远好于笼统描述;
- 将本技能输出用于生产前,应结合自身场景做验证与专家复核,不要把生成结果当作环境级验证的替代品;
- 避免把技能用于其领域之外的任务、避免不结合上下文盲目套用建议;
- 当所需输入、权限、安全边界或成功标准缺失时,先停下来澄清,不要硬生成。
结语
ai-studio-image 的价值不在于"多了一个图片生成脚本",而在于它把"如何让 AI 图看起来像真人拍的"沉淀成了一套可复现的工程方法:五层人性化提示词引擎(prompt_engine.py)、双模型族(Imagen/Gemini)分发与多 Key 故障转移(generate.py)、集中式配置与费用安全阀(config.py)、以及 20 个开箱即用的场景模板(templates.py)。掌握这套工作流后,你可以稳定地产出符合"真实生活质感"标准的社交媒体与教学配图,也能直接复用其思路为自己的图像生成管线设计人性化提示词。
【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考