Node-Packages / hugging_face.yaml
mypiper's picture
Create hugging_face.yaml
de5e2bc verified
_id: hugging_face
title: Hugging Face
description: ""
version: 1
readme: ""
url: https://huggingface.co/PiperMy/Node-Packages/resolve/main/hugging_face.yaml
author: Anton Breslavskii | https://github.com/breslavsky
nodes:
pulid_flux:
_id: pulid_flux
arrange:
x: 140
y: 60
category:
id: deep_swap
title: en=Deep swap;ru=Глубокая замена
environment:
HF_TOKEN:
title: Hugging Face Token
type: string
scope: global
inputs:
prompt:
order: 1
title: en=Prompt;ru=Подсказка
type: string
required: true
default: portrait, color, cinematic
person:
title: en=Person;ru=Фото человека
type: image
required: true
imageSize:
title: Image size
type: string
default: 1024x1024
enum:
- 512x512
- 1024x1024
outputs:
image:
title: ""
type: image
package: hugging_face
script: |-
export async function run({ inputs }) {
const { FatalError, NextNode } = DEFINITIONS;
const HF_TOKEN = env?.variables?.get('HF_TOKEN');
if(!HF_TOKEN) {
throw new FatalError('Please, set your API key Hugging Face');
}
const { Client } = await import("@gradio/client/dist/index.js");
const { person, prompt, imageSize } = inputs;
const [width, height] = (() => {
const [width, height] = imageSize.split('x');
return [parseInt(width), parseInt(height)];
})();
const { data: id_image } = await download(person);
const client = await Client.connect("PiperMy/PuLID-FLUX", {
hf_token: HF_TOKEN
});
console.log('Send request');
try {
const { data } = await client.predict("/generate_image", {
prompt,
id_image,
start_step: 0,
guidance: 2,
seed: -1,
true_cfg: 1,
width,
height,
num_steps: 25,
id_weight: 1,
neg_prompt: "artefacts, bad face",
timestep_to_start_cfg: 0,
max_sequence_length: 128,
});
const [{ url }] = data;
const { data: image } = await download(url);
return NextNode.from({ outputs: { image } });
} catch (e) {
throw new FatalError(e.message);
}
}
source: catalog
title: PuLID Flux
version: 1
deepseek_r1_8b_six:
_id: deepseek_r1_8b_six
arrange:
x: 210
y: 310
category:
id: llm_agents
title: en=Language Agents;ru=Языковые агенты
environment:
HF_TOKEN:
title: Hugging Face Token
type: string
scope: pipeline
inputs:
question:
order: 1
title: en=Question;ru=Вопрос
type: string
required: true
multiline: true
default: What time is it now? Only JSON ready to parse.
answerFormat:
order: 2
title: en=Answer format;ru=Формат ответа
description: Don't forget add instructions for LLM
type: string
required: true
default: text
enum:
- text|Text
- json|JSON
outputs:
answer:
title: en=Answer;ru=Ответ
type: string
json:
title: JSON
type: json
package: hugging_face
script: |
export async function run({ inputs }) {
const { FatalError, NextNode } = DEFINITIONS;
const OpenAI = require('openai');
const HF_TOKEN = env?.variables?.get('HF_TOKEN');
if (!HF_TOKEN) {
throw new FatalError('Please, set your API key for HF');
}
const { question, model, answerFormat } = inputs;
const openai = new OpenAI({
baseURL: 'https://jq20v0lfcxycc1z3.us-east-1.aws.endpoints.huggingface.cloud/v1/',
apiKey: HF_TOKEN,
});
const result = await openai.chat.completions.create({
model: 'lmstudio-community/DeepSeek-R1-Distill-Llama-8B-GGUF',
messages: [
{ "role": "user", "content": question },
],
});
const { content: answer } = result.choices[0].message;
switch (answerFormat) {
case 'text':
return NextNode.from({ outputs: { answer } });
case 'json':
try {
const json = answer.replace(/^\`\`\`json\s*/ig, '').replace(/\`\`\`\s*$/ig, '');
return NextNode.from({ outputs: { json: JSON.parse(json) } });
} catch (e) {
console.log(e);
message(`Wrong JSON for question \`\`\`text\n${question}\n\`\`\`\nnanswer from LLM\n\`\`\`text${answer}\n\`\`\``, 'defect');
throw new FatalError("Can't parse JSON asnwer from LLM");
}
default:
throw new FatalError(`Wrong answer format ${answerFormat}`);
}
}
source: catalog
title: DeepSeek R1 Distill Llama 8B Q8
version: 1