Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
/** @type {import('./$types').RequestHandler} */ | |
import { UploaderDataset } from '$lib/utils/uploader'; | |
// import { uploadImage } from '$lib/utils/upload_image'; | |
import { json, type RequestEvent } from '@sveltejs/kit'; | |
import prisma from '$lib/prisma'; | |
import { tokenIsAvailable } from '$lib/utils'; | |
export async function POST({ request, cookies } : RequestEvent) { | |
const { generation, image } = await request.json() | |
const token = cookies.get('hf_access_token') | |
let hf_user_id = null; | |
if (token) { | |
const user = await tokenIsAvailable(token) | |
if (user) hf_user_id = user?.sub; | |
} | |
if (!generation?.model?.id) { | |
return json({ | |
error: { | |
token: "A model id is required" | |
} | |
}, { status: 400 }) | |
} | |
if (!generation?.inputs) { | |
return json({ | |
error: { | |
token: "An inputs is required" | |
} | |
}, { status: 400 }) | |
} | |
const blob = await fetch(image) | |
.then((res) => res.blob()) | |
.then((blob) => blob) | |
.catch((error) => { | |
return json({ | |
error: error.message, | |
}, { status: 400 }) | |
}) | |
// const success = await uploadImage({ | |
// name: generation.inputs, | |
// data: image | |
// }) | |
// console.log(success) | |
const success: { | |
ok: boolean, | |
path?: string | undefined | |
} = await UploaderDataset(blob as Blob, generation.inputs) | |
if (!success.ok) { | |
return json({ | |
error: { | |
token: "Error uploading image" | |
} | |
}, { status: 400 }) | |
} | |
const gallery = prisma.gallery.create({ | |
data: { | |
image: success.path as string, | |
prompt: generation.inputs, | |
user: { | |
connect: { | |
sub: hf_user_id | |
} | |
}, | |
model: { | |
connect: { | |
id: generation.model.id | |
} | |
}, | |
} | |
}) | |
.catch((error) => { | |
console.log(error) | |
}) | |
return json({ | |
message: "Successfully generated image", | |
gallery | |
}) | |
} | |