Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0135
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次学习了字典
- 字典是用来查的
- 根据一个 key
- 可以查到相应的 value
- 字典项就是 key-value 键值对
- 字典的本质就是键值对的集合
- set of key-value pair
- 字典可以有什么应用场景吗?🤔
我要做这样一个程序,这个程序有3个列表,第一个列表是西游记中的人物列表,然后第二个列表呢是西游记中的场景列表,第三个列表呢是这个场景中这个人物的动作或者表情,比如说坐在椅子上,或者站在在石头上之类的东西。那么这三个列表呢?每个里面随机产生1个列表项,然后把它们组成一句话,最后还有个列表是镜头景景别的列表,然后把这四个加在一起生成一个文生图的提示词。
import random
# 西游记人物列表
characters = ["孙悟空", "唐僧", "猪八戒", "沙僧", "观音菩萨", "玉皇大帝", "白骨精", "牛魔王"]
# 西游记场景列表
scenes = ["花果山", "五行山下", "高老庄", "流沙河", "盘丝洞", "火焰山", "女儿国", "雷音寺"]
# 动作或表情列表
actions = ["挥舞手中武器", "双手合十诵经", "大口吃馒头", "挑着行李", "面露慈悲", "正襟危坐", "露出狡黠的笑容", "怒气冲冲"]
# 镜头景别列表
shot_types = [
"特写镜头(portrait(脸 + 肩 + 偶尔再加胸))",
"全景(panorama)",
"风景镜头(远景)(landscape)",
"全景镜头(广角镜头)(wide_shot)",
"中景镜头(medium_shot)",
"中景镜头(mid_shot)",
"全身像(full_shot)",
"半身像(bust)",
"上半身(upper_body)",
"下半身(lower_body)",
"上半身+上半大腿(牛仔镜头)(cowboy_shot)",
"侧面肖像画(portrait的侧脸)(profile)"
]
character = random.choice(characters)
scene = random.choice(scenes)
action = random.choice(actions)
shot_type = random.choice(shot_types)
# 生成提示语
prompt = f"{shot_type},{character}在{scene} {action}"
# 生成并打印提示语
print(prompt)
- 结果
- 可以做个 更实用的 文生图关键词 工具 吗?
忘掉之前的上下文,我要制作一个文生图的提示词生成器:生成器里有若干选项,人物背景、景别、光线顺逆、镜头俯仰、绘画风格。
把这些若干关键词通过键盘输入到终端中,选择选项得到最终提示词.
我需要命令行的python文件。
- 目前这个是纯纯的手工输入
- 想要 可以有些选项
# 人物选项
person_options = {
1: "年轻男性",
2: "年轻女性",
3: "儿童",
4: "老人"
}
# 背景选项
background_options = {
1: "森林",
2: "城市街道",
3: "海边",
4: "古老城堡"
}
# 景别选项
shot_type_options = {
1: "特写",
2: "近景",
3: "中景",
4: "全景",
5: "远景"
}
# 光线选项
light_direction_options = {
1: "顺光",
2: "逆光",
3: "侧光"
}
# 镜头角度选项
camera_angle_options = {
1: "俯视",
2: "仰视",
3: "平视"
}
def choose_option(options, title):
"""封装选择函数,解决编码报错,简化代码"""
print(f"\n请选择{title}:")
for key, value in options.items():
print(f"{key}. {value}")
# 兼容实验楼环境编码问题,捕获异常
try:
choice = input("输入数字选择,或输入具体描述: ")
except UnicodeDecodeError:
choice = input("请重新输入(纯英文/数字也可): ")
if choice.isdigit():
num = int(choice)
return options.get(num, choice)
return choice
# 开始选择
person = choose_option(person_options, "人物")
background = choose_option(background_options, "背景")
shot_type = choose_option(shot_type_options, "景别")
light_direction = choose_option(light_direction_options, "光线顺逆情况")
camera_angle = choose_option(camera_angle_options, "镜头俯仰角度")
# 获取绘画风格
try:
art_style = input("\n请输入绘画风格(例如:写实、卡通、油画风等):")
except UnicodeDecodeError:
art_style = input("请重新输入风格: ")
# 生成最终提示词
prompt = f"{person},背景为{background},采用{shot_type}景别,{light_direction},{camera_angle}视角,{art_style}绘画风格。"
# 输出
print("\n✅ 生成的提示词为:")
print(prompt)
- 选项 需要 增加一项
- 不填写
# 人物选项
person_options = {
1: "年轻男性",
2: "年轻女性",
3: "儿童",
4: "老人",
5: "不填"
}
# 背景选项
background_options = {
1: "森林",
2: "城市街道",
3: "海边",
4: "古老城堡",
5: "不填"
}
# 景别选项
shot_type_options = {
1: "特写",
2: "近景",
3: "中景",
4: "全景",
5: "远景",
6: "不填"
}
# 光线选项
light_direction_options = {
1: "顺光",
2: "逆光",
3: "侧光",
4: "不填"
}
# 镜头角度选项
camera_angle_options = {
1: "俯视",
2: "仰视",
3: "平视",
4: "不填"
}
def choose_option(options, title):
"""封装选择函数,解决编码报错,简化代码"""
print(f"\n请选择{title}:")
for key, value in options.items():
print(f"{key}. {value}")
# 兼容实验楼环境编码问题,捕获异常
try:
choice = input("输入数字选择,或输入具体描述: ")
except UnicodeDecodeError:
choice = input("请重新输入(纯英文/数字也可): ")
if choice.isdigit():
num = int(choice)
return options.get(num, choice)
return choice
# 开始选择
person = choose_option(person_options, "人物")
background = choose_option(background_options, "背景")
shot_type = choose_option(shot_type_options, "景别")
light_direction = choose_option(light_direction_options, "光线顺逆情况")
camera_angle = choose_option(camera_angle_options, "镜头俯仰角度")
# 获取绘画风格
try:
art_style = input("\n请输入绘画风格(例如:写实、卡通、油画风等):")
except UnicodeDecodeError:
art_style = input("请重新输入风格: ")
# ====================== 核心修改:自动过滤「不填」项 ======================
parts = []
if person != "不填":
parts.append(person)
if background != "不填":
parts.append(f"背景为{background}")
if shot_type != "不填":
parts.append(f"采用{shot_type}景别")
if light_direction != "不填":
parts.append(light_direction)
if camera_angle != "不填":
parts.append(f"{camera_angle}视角")
if art_style.strip():
parts.append(f"{art_style}绘画风格")
# 拼接最终提示词
prompt = ",".join(parts) + "。"
# ========================================================================
# 输出
print("\n✅ 生成的提示词为:")
print(prompt)
寸头男
- 用名词 描述 一个特征
- 理发之前 可以先问问理发师
- 对于 寸头的理解
- 还可以深入细节
###细节
- 毛寸 和 圆寸
- 可以用量化的方式更精确
- 当然可以更加细腻地描述 发型
- 概念存在于 共识之中
- 发型 提示词
- 下面 6mm卡尺的 圆寸
- 上面 稍微打薄 一点
- 但不是 毛寸
- 不容易被人揪到头发
- 可以从图片出发
- 反推提示词
- 要求ai根据图片
- 生成 结构化的提示词
- 写到 json格式中
请帮我写出这个图片的文生图提示词,要求是结构化的提示词。放到json文件中。
- 这个json的本质 是一个字典
- 结构化的 提示词
- 能更好滴 被ai理解
- 这次了解了 文生图 提示词 程序
- 通过编号 获得相应的 提示词
- 再将 提示词 组合起来
- 字典 和 列表 有什么关系吗?🤔
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。












