大家好,我是小江。最近潮汕英歌舞爆火,我一直在思考如何利用AI技术,将这种硬核传统文化转化为现代商业视觉。
今天分享一个完整的AIGC实战项目:利用 Python 配合 Stable Diffusion XL (SDXL) 模型,打造“英歌舞财神IP”,并将其植入到甜品设计中。 文末附有完整的自动化脚本代码,欢迎大家复制参考。
🛠️ 技术栈与核心逻辑
AI绘画引擎: Stable Diffusion XL (SDXL),利用其强大的语义理解能力,精准控制“Q版狮子”与“精致甜品”的构图。
自动化工作流: 编写 Python 脚本调用 SDXL 本地 API,批量生成不同水果口味的甜品场景,并统一植入英歌舞IP。
💻 核心代码实战 (Python 批量生成脚本)
为了高效产出系列设计图,我编写了如下 Python 脚本,批量向 SDXL 发送生成请求。大家可以参考这个基础架构进行魔改:
import requests
import json
import time
# 1. 设置 SDXL 本地 API 地址 (默认是 http://127.0.0.1:7860)
BASE_URL = "http://127.0.0.1:7860/sdapi/v1/txt2img"
# 2. 核心 Prompt (提示词) 模板,用 {flavor} 做变量替换
POSITIVE_PROMPT = """
(Masterpiece, best quality, 8k resolution), a realistic and mouth-watering layered fruit cake,
Q-version Chinese traditional Yingge dance lion holding gold ingots as cake topper,
cute cartoon sticker style topper, summer ocean background with palm trees,
beach aesthetic, bright sunlight, golden coins scattered around,
{flavor} flavored cake, delicious cream frosting, fresh fruit chunks.
"""
# 3. 负面提示词 (Negative Prompt),用于提升画面纯净度
NEGATIVE_PROMPT = """
(low quality, worst quality:1.4), distorted face, bad anatomy,
blurry, watermark, signature, text, extra limbs, deformed
"""
# 4. 需要批量生成的蛋糕风味列表
flavors = ["strawberry red", "mango yellow", "apple green"]
# 5. 统一的基础参数
payload = {
"prompt": POSITIVE_PROMPT,
"negative_prompt": NEGATIVE_PROMPT,
"steps": 20, # 步数
"width": 768, # 图片宽度
"height": 1024, # 图片高度 (适合手机端展示的 3:4 比例)
"cfg_scale": 7, # 提示词相关度
"sampler_name": "DPM++ 2M Karras",
"batch_size": 1
}
# 6. 批量生成并保存逻辑
def batch_generate_cakes():
for flavor in flavors:
# 动态替换当前风味提示词
current_prompt = POSITIVE_PROMPT.replace("{flavor}", flavor)
payload["prompt"] = current_prompt
print(f"[正在生成]: {flavor} flavored Yingge cake...")
# 发送 POST 请求给 SDXL API
response = requests.post(url=BASE_URL, json=payload)
if response.status_code == 200:
result = response.json()
# 提取 base64 图像数据并保存为 .png
for i, b64_image in enumerate(result['images']):
save_path = f"{flavor.replace(' ', '_')}_yingge_cake_{i+1}.png"
with open(save_path, "wb") as f:
f.write(b64_image)
print(f"[成功保存]: {save_path}")
else:
print(f"[生成失败]: {flavor}, 错误代码: {response.status_code}")
time.sleep(1) # 避免API请求过于频繁
# 执行脚本
if __name__ == "__main__":
batch_generate_cakes()