Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Ai Image/Video Editing - Open Pixel
- * Author : gienetic
- * Base : https://play.google.com/store/apps/details?id=com.openart.ai
- * Note : kalo recode tetep kasih tag author / sumber ya bab :v
- */
- const axios = require("axios");
- const KEYYY = "XbS7PoQmAv0TKrnL52tTnsRYJdO1v0rNcBPEey4D15FF2vfvMrIrB8LPagog";
- const UUID = `gienetic_${Math.random().toString(36).substring(2, 10)}`;
- const headers = {
- "user-agent": "Dart/3.8 (dart:io)",
- "content-type": "application/json; charset=utf-8",
- "accept": "application/json",
- "accept-encoding": "gzip",
- };
- // Ini sengaja gw kasih auto translate dulu, karna seperti biasa , ai nya gak mudeng bahasa indo :v
- async function translateToEnglish(text) {
- try {
- const url = "https://translate.googleapis.com/translate_a/single";
- const params = { client: "gtx", sl: "auto", tl: "en", dt: "t", q: text };
- const response = await axios.get(url, { params, headers });
- return response.data[0][0][0];
- } catch (error) {
- console.error("Translate Error:", error.message);
- return text;
- }
- }
- // Image → Image
- async function img2img(init_image, prompt) {
- try {
- const translatedPrompt = await translateToEnglish(prompt);
- const payload = {
- key: KEYYY,
- init_image,
- prompt: translatedPrompt,
- model_id: "flux-kontext-dev",
- num_inference_steps: "28",
- strength: "0.5",
- scheduler: "DPMSolverMultistepScheduler",
- guidance: "2.5",
- base64: false,
- negative_prompt: null,
- };
- const response = await axios.post(
- "https://modelslab.com/api/v6/images/img2img",
- payload,
- { headers }
- );
- return response.data.id ? fetchImage(response.data.id) : response.data;
- } catch (error) {
- return { status: "failed", error: error.message };
- }
- }
- // Text → Image
- async function text2img(prompt) {
- try {
- const translatedPrompt = await translateToEnglish(prompt);
- const url = `https://noisy-firefly-a3ec.akshaynceo6876.workers.dev/chat/dalle?user_id=${UUID}&message=${encodeURIComponent(translatedPrompt)}`;
- const response = await axios.post(url, null, { headers });
- return response.data?.output?.length ? response.data.output : response.data;
- } catch (error) {
- return { status: "failed", error: error.message };
- }
- }
- // Image → Video
- async function img2video(init_image, prompt, options = {}) {
- try {
- const translatedPrompt = await translateToEnglish(prompt);
- const payload = {
- key: KEYYY,
- init_image,
- prompt: translatedPrompt,
- base64: false,
- resolution: options.resolution || "480",
- output_type: "mp4",
- model_id: options.model_id || "wan2.2",
- fps: options.fps || "16",
- num_frames: options.num_frames || "82",
- };
- const response = await axios.post(
- "https://modelslab.com/api/v6/video/img2video_ultra",
- payload,
- { headers }
- );
- return response.data.id ? fetchVideo(response.data.id) : response.data;
- } catch (error) {
- return { status: "failed", error: error.message };
- }
- }
- // Text → Video
- async function text2video(prompt, options = {}) {
- try {
- const translatedPrompt = await translateToEnglish(prompt);
- const payload = {
- key: KEYYY,
- prompt: translatedPrompt,
- resolution: options.resolution || "480",
- fps: options.fps || "16",
- num_frames: options.num_frames || "82",
- output_type: "mp4",
- model_id: options.model_id || "wan2.2",
- };
- const response = await axios.post(
- "https://modelslab.com/api/v6/video/text2video_ultra",
- payload,
- { headers }
- );
- return response.data.id ? fetchVideo(response.data.id) : response.data;
- } catch (error) {
- return { status: "failed", error: error.message };
- }
- }
- // Fetch Image Job
- async function fetchImage(jobId) {
- const response = await axios.post(
- `https://modelslab.com/api/v6/images/fetch/${jobId}`,
- { key: KEYYY },
- { headers }
- );
- if (response.data.status === "processing") {
- await new Promise((resolve) => setTimeout(resolve, 5000));
- return fetchImage(jobId);
- }
- return response.data.output || response.data;
- }
- // Fetch Video Job
- async function fetchVideo(jobId) {
- const response = await axios.post(
- `https://modelslab.com/api/v6/video/fetch/${jobId}`,
- { key: KEYYY },
- { headers }
- );
- if (response.data.status === "processing") {
- await new Promise((resolve) => setTimeout(resolve, 5000));
- return fetchVideo(jobId);
- }
- return response.data.output || response.data;
- }
- module.exports = { img2img, text2img, img2video, text2video };
Add Comment
Please, Sign In to add comment