Загрузка данных
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor
from pptx.enum.shapes import MSO_SHAPE
prs = Presentation()
prs.slide_width = Inches(16) # 16:9 формат
prs.slide_height = Inches(9)
# Цвета в стиле твоих примеров
BLACK = RGBColor(0, 0, 0)
WHITE = RGBColor(255, 255, 255)
GRAY = RGBColor(40, 40, 40)
def title_slide(title, subtitle=""):
slide = prs.slides.add_slide(prs.slide_layouts[0])
title_shape = slide.shapes.title
subtitle_shape = slide.placeholders[1]
title_shape.text = title
p = title_shape.text_frame.paragraphs[0]
p.font.size = Pt(60)
p.font.bold = True
p.font.color.rgb = WHITE
p.alignment = PP_ALIGN.CENTER
if subtitle:
subtitle_shape.text = subtitle
p2 = subtitle_shape.text_frame.paragraphs[0]
p2.font.size = Pt(28)
p2.font.color.rgb = WHITE
return slide
def content_slide(title, bullets, image_notes=""):
slide = prs.slides.add_slide(prs.slide_layouts[1])
title_shape = slide.shapes.title
title_shape.text = title
title_shape.text_frame.paragraphs[0].font.size = Pt(44)
title_shape.text_frame.paragraphs[0].font.bold = True
body_shape = slide.placeholders[1]
tf = body_shape.text_frame
tf.clear()
for bullet in bullets:
p = tf.add_paragraph()
p.text = bullet
p.font.size = Pt(26)
p.space_after = Pt(14)
p.level = 0
# Примечание для тебя (куда вставлять фото)
if image_notes:
print(f"→ {title}: {image_notes}")
return slide
# ====================== НАЧИНАЕМ СОЗДАВАТЬ СЛАЙДЫ ======================
# 1. Титульный
title_slide(
"КАК ПОБОРОТЬ СИНДРОМ\nСАМОЗВАНЦА",
"и выйти на чек 300–400 €"
)
# 2. Что будет на эфире
content_slide(
"ЧТО БУДЕТ НА ЭФИРЕ",
[
"• Путь от флориста к фэшн-фотографу",
"• Разбор слабого фотографа",
"• Как поднять чек до 300–400 €",
"• Типы клиентов и как с ними работать",
"• Разбор ваших работ (если пришлёте)"
],
"Большое фото тебя или динамичная фэшн-съёмка справа"
)
# 3. Кто я
title_slide("КТО Я", "Путь от флориста до фэшн-фотографа")
content_slide(
"МОЙ ПУТЬ",
[
"• Работал флористом — мало зарабатывал",
"• Купил камеру в рассрочку",
"• 3 месяца боялся к ней прикоснуться",
"• Первая съёмка — 5 000 ₽"
],
"Фото: ты как флорист или первая камера"
)
content_slide(
"ПЕРЕХОД В ВИДЕО",
[
"• Стал популярным фэшн-видеографом",
"• Работал с брендами (Iconic Bell You и др.)",
"• Вернулся в фото с новым уровнем"
],
"3–4 фото: ранние работы + текущие"
)
# 4. Два пути
content_slide(
"ЕСТЬ ДВА ПУТИ: ТЕОРИЯ И ПРАКТИКА",
[
"• ПРАКТИКА — фундамент, без которого ничего не выйдет",
"• ТЕОРИЯ — тонкости, которые выводят на новый уровень"
],
"Три динамичных чёрно-белых фото моделей (как в твоём примере)"
)
# 5. Разбор слабого фотографа
content_slide(
"ПОЧЕМУ ВОВА ВСЕГДА ОСТАНЕТСЯ СЛАБЫМ",
[
"• 10 лет опыта",
"• Ведёт соцсети",
"• Собирал команду",
"",
"Но результат слабый"
],
"Фото «Вовы» (можно стоковое)"
)
content_slide(
"ПОЧЕМУ ВОВА СЛАБЫЙ",
[
"• Нет сильного УТП",
"• Не умеет продавать",
"• Нет индивидуального стиля"
]
)
content_slide(
"САША VS ВОВА",
[
"Саша (3 года):",
"• Востребованный",
"• Сильное УТП",
"• Индивидуальный стиль",
"• Умеет работать с брендами",
"",
"→ В ассистенты я возьму Сашу"
],
"Сравнительные фото"
)
# 6. Стиль
content_slide(
"СТИЛЬ — ОСНОВА, КОТОРОЙ НЕ ОБУЧАЮТ",
["Есть стиль → Есть работа", "Нет стиля → Всегда среднячок"],
"Два больших фото рядом: с стилем и без"
)
# 7. Как выйти на чек 300-400€
content_slide(
"КАК ВЫЙТИ НА ЧЕК 300–400 €",
["ЧЕК — ЭТО ПОЗИЦИОНИРОВАНИЕ"],
"Большое фото успешной съёмки"
)
content_slide(
"5 ШАГОВ К НОВОМУ ЧЕКУ",
[
"1. Анализ: сколько клиентов, какая ниша, какой средний чек",
"2. Выбор стратегии: быть среднячком или профи в одном",
"3. Люди покупают не фотографа, а ЛИЧНОСТЬ",
"4. Усиление слабых сторон",
"5. Выход на рынок (соцсети + бренды)"
]
)
content_slide(
"СОЦСЕТИ — ЗОЛОТАЯ ЖИЛА",
[
"Зрители = потенциальные клиенты",
"Лента Instagram = современные журналы",
"Реальные деньги приносят бренды и звёзды"
]
)
# 8. Типы клиентов
content_slide(
"ТИПЫ КЛИЕНТОВ",
[
"С кем НЕ работаем (красные флаги)",
"С кем работаем (высокий чек)"
],
"Два столбца или два фото"
)
# 9. Результаты и мотивация
content_slide(
"РЕЗУЛЬТАТ, КОТОРЫЙ ВОЗМОЖЕН",
[
"• +30 000 подписчиков за 150 дней",
"• Стабильный рост",
"• Выход на бренды"
],
"График роста (вставь свой или сделай в Canva и вставь)"
)
title_slide(
"НЕ НУЖНО УХОДИТЬ В КРАЙНОСТИ",
"Можно выбрать свою середину и свои правила"
)
# 10. Призыв
content_slide(
"ЗАПИСАТЬСЯ НА ОБУЧЕНИЕ",
[
"Промокод: fash@ont# (действует 24 часа)",
"Анкетирование в закрепе",
"Скидывайте свои работы — разберём лично"
],
"Твоё фото + контакт"
)
# Финальный слайд
title_slide(
"ДАВАЙТЕ ПОГОВОРИМ",
"Жду твою заявку → Переходи к новому уровню"
)
# Сохранение
prs.save("Как_побороть_синдром_самозванца_и_выйти_на_чек_300-400.pptx")
print("\n✅ Презентация успешно создана!")
print("Файл: Как_побороть_синдром_самозванца_и_выйти_на_чек_300-400.pptx")
print("\nТеперь открой файл и вставь свои фото в указанные места.")