// components/PhoneInput.tsx import { Button, Divider, FormControl, FormLabel, HStack, Icon, Input, Table, TableContainer, Tbody, Textarea, Th, Thead, Tr, VStack, } from "@chakra-ui/react"; import { MdHeight } from "react-icons/md"; import { RxWidth } from "react-icons/rx"; import { BsBarChartSteps } from "react-icons/bs"; import { TbPrompt } from "react-icons/tb"; import { FaDraft2Digital, FaPlay } from "react-icons/fa"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; import ResultBox from "../ui/ResultBox"; import axiosInstance, { baseUrl } from "@/lib/api"; import useSWRMutation from "swr/mutation"; const modelsDic = { sdxl: "base", sdxl_lora: "lora", }; const postRequest = async (url, { arg }) => { const response = await axiosInstance.post(baseUrl + url, arg); return response?.data; }; export default function TextImagePanel({ filters }) { const { register, handleSubmit, watch, setValue } = useForm(""); const { register: registerRokn, handleSubmit: handleSubmitRokn, watch: watchRokn, setValue: setValueRokn, } = useForm(""); const [images, setImages] = useState([]); const width = filters?.model_name === 0 ? watch("width") : watchRokn("width"); const height = filters?.model_name === 0 ? watch("height") : watchRokn("height"); const { trigger: triggerGenerateImage, isMutating: isGeneratingImage } = useSWRMutation( `/content/sdxl/${modelsDic[filters?.tab_menu]}`, postRequest, { onSuccess: (data) => setImages(data?.images), }, ); const { trigger: triggerGenerateRoknImage, isMutating: isGeneratingRoknImage, } = useSWRMutation( `/content/rokn/t2i?model_key=${filters?.tab_menu}`, postRequest, { onSuccess: (data) => setImages(data?.images), }, ); const onSubmit = (data) => { if (filters?.model_name === 0) triggerGenerateImage(data); else triggerGenerateRoknImage(data); }; useEffect(() => { if (filters?.model_name === 0) { setValue("height", 768); setValue("width", 768); setValue("seed", 42); setValue("num_inference_steps", 60); setValue("guidance_scale", 7); setValue("prompt", ""); } else { setValueRokn("height", 768); setValueRokn("width", 768); setValueRokn("steps", 10); setValueRokn("preset", ""); setValue("prompt", ""); } }, [filters?.model_name]); return ( {" "} طول: {filters?.model_name === 0 ? ( ) : ( )} عرض: {filters?.model_name === 0 ? ( ) : ( )} {filters?.model_name === 0 && ( seed: )} تعداد مراحل استنتاج: {filters?.model_name === 0 ? ( ) : ( )} {filters?.model_name === 0 && ( مقیاس راهنمایی: )} {filters?.model_name === 1 && ( سبک تصویر: )} پرامپت: {filters?.model_name === 0 ? (