> ## Documentation Index
> Fetch the complete documentation index at: https://hyperframes.heygen.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose a workflow

> Start from the material you already have.

export const WorkflowChooser = () => {
  const CDN = "https://static.heygen.ai/hyperframes-oss/docs/images/showcase";
  const routes = [{
    title: "Show a product or website",
    bring: "Bring a URL, launch brief, or product story.",
    href: "/guides/product-launch-video",
    video: `${CDN}/wfv2-product-launch.mp4`,
    poster: `${CDN}/wfv2-product-launch.jpg`
  }, {
    title: "Explain an idea",
    bring: "Bring notes, an article, a script, or one rough thought.",
    href: "/guides/faceless-explainer",
    video: `${CDN}/wfv2-explainer.mp4`,
    poster: `${CDN}/wfv2-explainer.jpg`
  }, {
    title: "Work with existing footage",
    bring: "Bring a talking-head, interview, or podcast clip.",
    href: "/guides/captions-and-recuts",
    video: `${CDN}/wfv2-captions.mp4`,
    poster: `${CDN}/wfv2-captions.jpg`
  }, {
    title: "Explain a pull request",
    bring: "Bring a GitHub pull request link.",
    href: "/guides/pr-to-video",
    video: `${CDN}/wfv2-pr.mp4`,
    poster: `${CDN}/wfv2-pr.jpg`
  }, {
    title: "Make a short motion graphic",
    bring: "Bring a message, number, quote, chart, or logo.",
    href: "/guides/motion-graphics",
    video: `${CDN}/wfv2-motion.mp4`,
    poster: `${CDN}/wfv2-motion.jpg`
  }, {
    title: "Cut to music",
    bring: "Bring a track and any photos or video you want to use.",
    href: "/guides/music-to-video",
    video: `${CDN}/wfv2-music.mp4`,
    poster: `${CDN}/wfv2-music.jpg`
  }, {
    title: "Build a presentation",
    bring: "Bring an outline, pitch, report, or existing deck.",
    href: "/guides/slideshow",
    video: "https://static.heygen.ai/hyperframes-oss/docs/images/showcase/wfv2-slideshow.mp4",
    poster: "https://static.heygen.ai/hyperframes-oss/docs/images/showcase/wfv2-slideshow.jpg"
  }, {
    title: "Direct a custom video",
    bring: "Bring the outcome you want and whatever source material you have.",
    href: "/guides/general-video",
    video: `${CDN}/wfv2-general.mp4`,
    poster: `${CDN}/wfv2-general.jpg`
  }];
  const gridRef = useRef(null);
  const [reducedMotion, setReducedMotion] = useState(() => typeof window !== "undefined" && window.matchMedia("(prefers-reduced-motion: reduce)").matches);
  useEffect(() => {
    const query = window.matchMedia("(prefers-reduced-motion: reduce)");
    const onChange = event => setReducedMotion(event.matches);
    query.addEventListener("change", onChange);
    return () => query.removeEventListener("change", onChange);
  }, []);
  useEffect(() => {
    if (!reducedMotion || !gridRef.current) return;
    for (const video of gridRef.current.querySelectorAll("video")) {
      video.pause();
      video.removeAttribute("src");
      video.load();
    }
  }, [reducedMotion]);
  return <div className="hf-workflow-routes" ref={gridRef}>
      {routes.map(route => <a key={route.href} href={route.href} aria-label={`${route.title}. ${route.bring}`} className="hf-workflow-route">
          <video src={reducedMotion ? undefined : route.video} poster={route.poster} autoPlay={!reducedMotion} muted loop={!reducedMotion} playsInline preload="metadata" aria-hidden="true" />
          <span>
            <span className="hf-workflow-route-title">{route.title}</span>
            <span className="hf-workflow-route-copy">{route.bring}</span>
          </span>
        </a>)}
    </div>;
};

<WorkflowChooser />

When several source types matter equally, use **Direct a custom video**.
You can also make a plain `/hyperframes` request; the agent selects the matching
workflow after it understands what you want.

## Related topics

* [Make your first video](/quickstart)
* [Create a product or website video](/guides/product-launch-video)
* [Direct a custom video](/guides/general-video)


## Related topics

- [Choose a rendering path](/deploy/overview.md)
- [Choose how to create](/guides/choose-creation-path.md)
- [Export and manage renders](/studio/export.md)
