修复种草图生成:以三合一主图为参考 img2img 生成,按颜色分配(每色优先、超出随机补足);新增 BR/CA/DE/ES/IT/PL/SA 七国配置与提示词;删除验证用测试脚本

This commit is contained in:
2026-08-24 14:02:19 +08:00
parent f493bde8a9
commit 3c341d2e78
51 changed files with 2571 additions and 514 deletions
+71
View File
@@ -101,6 +101,74 @@ _HOLIDAYS_BY_COUNTRY: Dict[str, List[tuple]] = {
("Boxing Day", 12, 26, None, 21),
("Halloween", 10, 31, None, 21),
],
"DE": [
("New Year", 1, 1, None, 14),
("Valentine's Day", 2, 14, None, 21),
("Easter", 0, 0, "easter", 21),
("Oktoberfest", 9, 21, "third_saturday", 30), # 啤酒节(9 月第三个周六)
("German Unity Day", 10, 3, None, 21),
("Halloween", 10, 31, None, 30),
("Advent Season", 11, 30, None, 30),
("Christmas", 12, 25, None, 30),
("Boxing Day", 12, 26, None, 14),
],
"BR": [
("New Year", 1, 1, None, 14),
("Carnival", 2, 15, None, 30), # 狂欢节(浮动,2 月近似)
("Easter", 0, 0, "easter", 21),
("Tiradentes Day", 4, 21, None, 14),
("Independence Day (BR)", 9, 7, None, 21),
("Children's Day (BR)", 10, 12, None, 21),
("Halloween", 10, 31, None, 30),
("Christmas", 12, 25, None, 30),
("New Year Eve", 12, 31, None, 14),
],
"SA": [
("New Year", 1, 1, None, 14),
("Saudi Founding Day", 2, 22, None, 21),
("Saudi National Day", 9, 23, None, 30),
("Winter Season", 12, 1, None, 30),
],
"PL": [
("New Year", 1, 1, None, 14),
("Valentine's Day", 2, 14, None, 21),
("Easter", 0, 0, "easter", 21),
("Constitution Day (PL)", 5, 3, None, 21),
("Halloween", 10, 31, None, 30),
("Independence Day (PL)", 11, 11, None, 21),
("Christmas", 12, 25, None, 30),
("Boxing Day", 12, 26, None, 14),
],
"ES": [
("Three Kings Day", 1, 6, None, 14),
("Valentine's Day", 2, 14, None, 21),
("Easter (Semana Santa)", 0, 0, "easter", 21),
("Feria de Abril", 4, 15, None, 21),
("La Tomatina", 8, 27, None, 21),
("Halloween", 10, 31, None, 30),
("Christmas", 12, 25, None, 30),
("New Year Eve", 12, 31, None, 14),
],
"IT": [
("New Year", 1, 1, None, 14),
("Epiphany", 1, 6, None, 14),
("Valentine's Day", 2, 14, None, 21),
("Carnevale", 2, 15, None, 21),
("Easter", 0, 0, "easter", 21),
("Ferragosto", 8, 15, None, 21),
("Halloween", 10, 31, None, 30),
("Christmas", 12, 25, None, 30),
],
"CA": [
("New Year", 1, 1, None, 14),
("Valentine's Day", 2, 14, None, 21),
("Easter", 0, 0, "easter", 21),
("Canada Day", 7, 1, None, 21),
("Thanksgiving (CA)", 10, 12, None, 21), # 10 月第 2 周一(近似固定日)
("Halloween", 10, 31, None, 30),
("Christmas", 12, 25, None, 30),
("Boxing Day", 12, 26, None, 14),
],
}
@@ -147,6 +215,9 @@ def _resolve(name: str, month: int, day: int, rule, year: int) -> Optional[datet
if rule == "labor":
first = datetime.date(year, month, 1)
return first + datetime.timedelta(days=(0 - first.weekday()) % 7)
if rule == "third_saturday":
first = datetime.date(year, month, 1)
return first + datetime.timedelta(days=(5 - first.weekday()) % 7 + 2 * 7)
return None