feat(example page): create initial 4 workflows
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 39 KiB |
BIN
web/public/example-workflows/ipadapter.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 39 KiB |
BIN
web/public/example-workflows/txt2img-lcm.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
web/public/example-workflows/txt2img.webp
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
web/public/example-workflows/upscale.webp
Normal file
|
After Width: | Height: | Size: 29 KiB |
@ -1,6 +1,7 @@
|
|||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card";
|
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
export default function Page() {
|
export default function Page() {
|
||||||
return <Examples />;
|
return <Examples />;
|
||||||
@ -19,30 +20,39 @@ type exampleWorkflow = {
|
|||||||
|
|
||||||
const exampleWorkflows: exampleWorkflow[] = [
|
const exampleWorkflows: exampleWorkflow[] = [
|
||||||
{
|
{
|
||||||
title: "txt2img",
|
title: "Txt2Img SDXL",
|
||||||
description: "The basic workflow, type a prompt and generate images based on that.",
|
description: "The basic workflow, type a prompt and generate images based on that.",
|
||||||
previewURL: '',
|
previewURL: '',
|
||||||
image: {
|
image: {
|
||||||
src: '/example-workflows/IPAdapter.jpg',
|
src: '/example-workflows/txt2img.webp',
|
||||||
alt: 'IPAdapter workflow',
|
alt: 'IPAdapter workflow',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "IPAdapter [SDXL]",
|
title: "Txt2Img LCM SDXL",
|
||||||
|
description: "Images in a couple of seconds, increase the speed of each generation using LCM Lora.",
|
||||||
|
previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-lcm-sdxl',
|
||||||
|
image: {
|
||||||
|
src: '/example-workflows/txt2img-lcm.webp',
|
||||||
|
alt: 'txt2img LCM SDXL',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "IPAdapter SDXL",
|
||||||
description: "Load images and use them as reference for new generations.",
|
description: "Load images and use them as reference for new generations.",
|
||||||
previewURL: '',
|
previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-ip-adapter-sdxl',
|
||||||
image: {
|
image: {
|
||||||
src: '/example-workflows/img2img.jpg',
|
src: '/example-workflows/ipadapter.webp',
|
||||||
alt: 'IPAdapter workflow',
|
alt: 'IPAdapter workflow',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "img2img inpainting",
|
title: "Upscale and Add Detail SDXL",
|
||||||
description: "Use an image as base and modify certain areas that you select.",
|
description: "Upscale and Add Details to your creations",
|
||||||
previewURL: '',
|
previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-upscale-and-add-detail-sdxl',
|
||||||
image: {
|
image: {
|
||||||
src: '/example-workflows/text2img.jpg',
|
src: '/example-workflows/upscale.webp',
|
||||||
alt: 'img2img inpainting workflow',
|
alt: 'Upscale and Add Detail SDXL',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -57,7 +67,7 @@ async function Examples() {
|
|||||||
</h1>
|
</h1>
|
||||||
<p className="max-w-[560px] text-center text-lg text-muted-foreground">Text to Image, Image to Image, IPAdapter, and more. Here are some examples that you can use to deploy your workflow.</p>
|
<p className="max-w-[560px] text-center text-lg text-muted-foreground">Text to Image, Image to Image, IPAdapter, and more. Here are some examples that you can use to deploy your workflow.</p>
|
||||||
</section>
|
</section>
|
||||||
<section className="flex gap-4">
|
<section className="flex justify-center flex-wrap gap-4">
|
||||||
{exampleWorkflows.map(workflow => {
|
{exampleWorkflows.map(workflow => {
|
||||||
return <Card className="w-[350px]">
|
return <Card className="w-[350px]">
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
@ -67,9 +77,11 @@ async function Examples() {
|
|||||||
<CardContent>
|
<CardContent>
|
||||||
<Image src={workflow.image.src} alt={workflow.image.alt} width={350} height={230} />
|
<Image src={workflow.image.src} alt={workflow.image.alt} width={350} height={230} />
|
||||||
</CardContent>
|
</CardContent>
|
||||||
<CardFooter className="flex justify-between gap-2">
|
<CardFooter className="flex justify-end gap-2">
|
||||||
<Button variant="outline">View</Button>
|
<Button asChild>
|
||||||
<Button>Deploy</Button>
|
<Link href={workflow.previewURL}>View Workflow</Link>
|
||||||
|
</Button>
|
||||||
|
{/* <Button>Deploy</Button> */}
|
||||||
</CardFooter>
|
</CardFooter>
|
||||||
</Card>;
|
</Card>;
|
||||||
})}
|
})}
|
||||||
|
|||||||