← Master Index
Vol. 16 Module 16.3 Lecture

Leonardo AI

Image Generation Models (added)

How This Lesson Fits the Module & Volume

Firefly is gen AI inside a design suite you already own. Leonardo AI is the opposite catalog shape: a generation platform built around a model zoo (fine-tunes, community/platform models, LoRAs, realtime canvas, image guidance). Historically it productized the Stable Diffusion ecosystem; later first-party models (Phoenix, Lucid Origin, and successors—names change) sit beside SD-class bases.

Think “hosted ComfyUI-lite + marketplace,” not “one foundation model.” Volume 17 (ComfyUI, LoRA, ControlNet) is what you learn if you outgrow Leonardo and self-host. Next, Canva Magic Studio wraps gen AI into templates for non-specialists.

Learning Objectives

By the end of this lesson, students should be able to:

  • Define Leonardo as a multi-model image platform (zoo + fine-tunes + API), not a single checkpoint.
  • Score it on the 16.3 rubric vs Firefly, Midjourney, and self-host SD/FLUX.
  • Explain tokens/credits, plan tiers, and commercial rights as ops constraints.
  • Call the generate-then-poll REST pattern with a chosen model id.
  • Know image guidance / realtime canvas as productized ControlNet-ish controls.
  • Decide when Leonardo is a team SaaS vs when ComfyUI should take over (Vol. 17).
Definition

Leonardo AI (Leonardo.Ai) is a closed SaaS for still (and some motion) generation that lets users pick which model to run: platform-trained SKUs, SD-derived fine-tunes, and user/custom models. Features typically include text-to-image, image-to-image, upscale, canvas/inpaint, image guidance (pose/edge-style controls), and a REST API. The durable lesson: you are buying a hosted model router + UI + billing, not “the Leonardo network architecture.”

Rubric: Platform vs Foundation Model

AxisLeonardo AIFireflySelf-host SD/FLUX + ComfyUI
Open vs closedClosed platform; some underlying weights may be SD-classClosed AdobeYou hold checkpoints
Prompt fidelityDepends on the selected model—always name the SKU in evalsConservative design defaultsDepends on checkpoint + graph
Text renderingVaries by model; not Ideogram-class by defaultSimple labels; live type in IllustratorFLUX better; XL weak
Licensing / commercialLeonardo ToS + plan; custom/community models may add extra termsCC indemnity storyPer-file RAIL/Apache/BFL
LatencyCredit-metered queue; realtime modes are a different SKU/budgetCC creditsYour GPU

What You Actually Configure

Model zoo

  • Platform models vs fine-tunes
  • Never A/B “Leonardo” without ids
  • LoRAs stack on a base

Guidance

  • Image prompt / style refs
  • Pose/edge-style controls
  • Preview of Vol. 17 ControlNet

API

  • Generate job + poll
  • Webhook optional
  • Token/credit accounting

REST Pattern (Confirm Paths in Docs)

Leonardo’s public API is job-oriented. Model UUIDs are first-class. Do not treat a blog screenshot of Alchemy/Phoenix as a benchmark—pin the id, prompt, and seed in your spike.

import os, time, requests KEY = os.environ["LEONARDO_API_KEY"] BASE = "https://cloud.leonardo.ai/api/rest/v1" # confirm current host H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"} # modelId: copy from Leonardo model page / API docs — do not invent UUIDs submit = requests.post( f"{BASE}/generations", headers=H, json={ "prompt": "ceramic mug on oak, soft window light, no text, no logo", "modelId": "", "width": 1024, "height": 1024, "num_images": 1, }, timeout=30, ) submit.raise_for_status() gen_id = submit.json()["sdGenerationJob"]["generationId"] # field names per docs for _ in range(40): st = requests.get(f"{BASE}/generations/{gen_id}", headers=H, timeout=30) st.raise_for_status() data = st.json()["generations_by_pk"] if data.get("status") == "COMPLETE": print(data.get("generated_images")) break if data.get("status") == "FAILED": raise RuntimeError(data) time.sleep(2)

Typical Use Cases

Pick Leonardo when

  • Game/concept teams want a model zoo without GPU ops
  • You will train/fine-tune on-platform
  • Realtime canvas for look-dev
  • API + UI for the same account

Move on when

  • Indemnity/CC → Firefly
  • Templates for marketers → Canva
  • Air-gap / full graph control → ComfyUI Vol. 17
  • Typography-first → Ideogram
Common Misconception

“We evaluated Leonardo last quarter; it is worse than Midjourney.” You evaluated one model id on one plan. Leonardo’s quality variance across the zoo is the point. Re-run spikes with the current platform SKU, a relevant fine-tune, and the same brief you use for MJ/FLUX. Log model id like you log GPT snapshot names.

Knowledge Check

  1. Short Answer: Why is Leonardo not “one model”? Answer: It is a platform/router over many checkpoints, fine-tunes, and LoRAs.
  2. True/False: Prompt fidelity on Leonardo is independent of modelId. Answer: False—always pin and report the SKU.
  3. Multiple Choice: Leonardo’s closest open analog is: (a) Whisper, (b) hosted ComfyUI-lite + zoo, (c) Sora. Answer: (b).
  4. Short Answer: What commercial extra risk do community models add? Answer: Extra license/ToS beyond Leonardo’s plan—read both.
  5. True/False: Image guidance features are a productized cousin of ControlNet ideas. Answer: True—Vol. 17 teaches the open implementation.
  6. Multiple Choice: API shape is typically: (a) sync Discord, (b) generate job + poll, (c) SMTP. Answer: (b).
  7. Short Answer: When should a team leave Leonardo for ComfyUI? Answer: Air-gap, full graph control, custom nodes, or cost/VRAM ownership (Vol. 17).
  8. True/False: Firefly indemnity is Leonardo’s headline differentiator. Answer: False—that is Adobe’s story; Leonardo sells zoo + UI + API.
  9. Multiple Choice: Credits/tokens affect: (a) only aesthetics, (b) latency budget and cost ops, (c) RAIL-M text. Answer: (b).
  10. Short Answer: Which next lecture wraps gen AI in consumer design templates? Answer: Canva Magic Studio.

Key Takeaways

  • Leonardo is a hosted multi-model platform, not a single foundation net.
  • Evals must pin modelId, plan, and guidance settings.
  • API is async jobs + credits; community models add license work.
  • Outgrow it → ComfyUI / ControlNet / LoRA in Volume 17.
  • Continue with Canva Magic Studio.
Trainer’s Guide

Lab: Same prompt on two Leonardo model ids (platform vs a fine-tune). Record ids, credits spent, and text-rendering fails. Compare to one Firefly Fill if CC is available.

Whiteboard: Spectrum: MJ (one look) — Leonardo (zoo SaaS) — ComfyUI (graph you own). Place the team’s actual workflow.

Recap: Leonardo sells a model zoo and API on top of SD-class ideas—pin the SKU. Continue with Canva Magic Studio.