大家好,我是小江。继上一期的"草莓蛋糕"后,今天带来我的"潮汕国潮甜品IP"系列新作------《猫咪英歌舞·霸气长蛋挞》。
很多粉丝问我:"小江,你生成的猫咪和英歌舞小人每次都长得一样,是怎么做到的?难道每次都要抽卡碰运气吗?"
其实,做商业设计,稳定性大于一切。今天这篇,我继续分享底层的自动化逻辑。我们要用 Python + SDXL + ControlNet,把"创意"变成可以批量复制的"生产力"。
看这张图:一只穿着工装的酷萌橘猫,手捧铺满蓝莓草莓的超长拿破仑蛋挞,背景融合了潮汕红桃粿元素。这不仅是一张图,这是一个完整的文创产品概念。
为了实现"猫咪形象统一"且"蛋挞构图多变",我编写了一个 Python 脚本,通过 API 调用 Stable Diffusion WebUI。
import requests
import json
import base64
from PIL import Image
from io import BytesIO
定义批量生成的配置
这里的关键是固定 seed 和 controlnet 参数,确保 IP 不崩坏
BATCH_CONFIG = {
"model": "sdxl_chaoshan_v1.safetensors", # 加载微调过的潮汕模型
"lora": "yingge_cat_character.safetensors", # 挂载英歌舞猫咪LoRA
"controlnet": "openpose_hand_face.json", # 锁定人物姿势
提示词工程:强调细节
"prompts": [
"(masterpiece), cute orange cat wearing vest, holding a long strawberry blueberry tart, chaoshan yingge dance stickers, festive atmosphere, 8k, cinematic lighting",
"(masterpiece), close up of long egg tart, fresh strawberries and blueberries, cream topping, yingge dance totem pattern on crust, delicious food photography"
],
关键参数:固定Seed以保持角色一致性
"seed": 1024,
"cfg_scale": 7.0,
"steps": 30
}
def generate_batch(config):
"""
批量生成函数:循环调用API,自动保存不同变体
"""
url = "http://127.0.0.1:7860/sdapi/v1/txt2img"
for i, prompt in enumerate(config'prompts'):
payload = {
"prompt": prompt,
"negative_prompt": "bad anatomy, extra limbs, ugly",
"seed": config'seed' + i, # 种子递增,保持微调变化但主体不变
"steps": config'steps',
"cfg_scale": config'cfg_scale',
这里可以加入 ControlNet 的参数配置
}
response = requests.post(url, json=payload)
if response.status_code == 200:
r = response.json()
解码并保存图片
image_data = base64.b64decode(r'images'0)
image = Image.open(BytesIO(image_data))
image.save(f"output/tart_cat_{i+1}.png")
print(f"Image {i+1} generated successfully!")
if name == "main":
generate_batch(BATCH_CONFIG)

