const axios = require("axios")
/**
* Flux Image Generator
* Função utilitária para gerar imagens a partir de nihalgazi-flux-unlimited.hf.space.
*
* @param {string} prompt - O texto que descreve a imagem desejada.
* @param {number} [width=1024] - Largura da imagem.
* @param {number} [height=1024] - Altura da imagem.
* @param {string} [server="Google US Server"] - Nome do servidor para geração.
* @returns {Promise} - Retorna a URL da imagem gerada ou null em caso de falha.
*
* @author synshin9
*
* @By: 𖧄 𝐋𝐔𝐂𝐀𝐒 𝐌𝐎𝐃 𝐃𝐎𝐌𝐈𝐍𝐀 𖧄
* Canal: https://whatsapp.com/channel/0029Vb69bDnAe5VmzSMwBH11
*
* SERVIDORES DE LISTAS:
* NSFW-Core: Uncensored Server
* NSFW-Core: Uncensored Server 2
* NSFW-Core: Uncensored Server 3
* NSFW-Core: Uncensored Server 4
* Azure Lite Supercomputer Server
* Artemis GPU Super cluster
* NebulaDrive Tensor Server
* PixelNet NPU Server
* Google US Server
*
* ⚠️ Atenção:
* O servidor NSFW-Core pode gerar conteúdo adulto. Você deve ser maior de idade em sua jurisdição e cumprir todas as leis locais e políticas da plataforma. O desenvolvedor não se responsabiliza pelo uso indevido.
*/
async function fluxImage(prompt, width = 1024, height = 1024, server = "NSFW-Core: Uncensored Server 2") {
try {
const { data: init } = await axios.post(
"https://nihalgazi-flux-unlimited.hf.space/gradio_api/call/generate_image",
{ data: [prompt, width, height, 3, true, server] },
{
headers: {
"Content-Type": "application/json",
Origin: "https://chrunos.com",
Referer: "https://chrunos.com/",
},
}
);
const eventId = init.event_id;
if (!eventId) throw new Error("Não foi possível obter o event_id.");
const streamUrl = `https://nihalgazi-flux-unlimited.hf.space/gradio_api/call/generate_image/${eventId}`;
let imageUrl = null;
for (let i = 0; i < 15; i++) {
const { data } = await axios.get(streamUrl, {
headers: { Accept: "text/event-stream" },
});
const match = data.match(/"url":\s*"([^"]+)"/);
if (match) {
imageUrl = match[1];
break;
}
await new Promise(r => setTimeout(r, 2000));
}
if (!imageUrl) throw new Error("Não foi possível recuperar o URL da imagem do fluxo.");
return imageUrl;
} catch (err) {
console.error("Error:", err.message);
return null;
}
}
module.exports = { fluxImage }