Coisas que eu quero fazer
Use StableDiffusion.cpp no modo servidor.
Vantagens e desvantagens
Primeiramente, vamos resumir as vantagens e limitações do modo servidor para que você possa decidir se deseja ou não utilizá-lo.
vantagem
Quando iniciado no modo servidor, o modelo é armazenado em cache, resultando em uma execução mais rápida a partir da segunda vez.
Você pode preparar um arquivo HTML e especificar prompts e outros elementos dentro desse HTML.
Coisas que não podem ser feitas
As únicas configurações que você pode especificar em uma solicitação são o prompt, o número de imagens, o tamanho da imagem, o formato da imagem e a taxa de compressão. Configurações detalhadas não estão disponíveis. É necessário reiniciar o servidor se você alterar o modelo em uso.
環境構築
download
Faça o download do arquivo Zip apropriado para o seu ambiente na página seguinte.
Se você quiser executá-lo em uma GPU AMD, precisará de algo com ‘vulkan’ ou ‘rocm’ no nome.
(Basicamente, o Vulkan deve funcionar bem. O ROCM provavelmente terá limitações quanto às GPUs que podem ser usadas.)

Isso se aplica às GPUs da NVidia que possuem ‘CUDA’ em seu nome.
Aliás, o método descrito neste artigo requer um pacote bastante recente. (Foi testado no master-468-885e62e. Não funciona no master-431-23fce0b (2025/12M).)
AVX512, AVX2, AVX e NOAVX são baseados na CPU. Verifique qual versão do AVX é compatível com sua CPU e faça o download. (Eu estava enganado, mas parece que as CPUs da AMD também podem usar AVX. O mais fácil é perguntar a um especialista em IA qual versão é compatível.)
Depois de extrair o arquivo baixado para uma pasta de sua escolha, você estará pronto para começar.
Prepare o HTML
Prepare o HTML em qualquer local que desejar.
Este artigo foi salvo como index.html usando o seguinte HTML.
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>sd-cpp Web UI</title>
</head>
<body>
<div>
<h2>sd-cpp</h2>
<textarea id="prompt" placeholder="Prompt...">a cat in space, digital art</textarea>
<div class="controls">
<select id="size">
<option value="512x512">512x512</option>
<option value="768x768">768x768</option>
<option value="1024x1024">1024x1024</option>
</select>
<button id="genBtn" onclick="generate()">Generate</button>
</div>
<div id="status" class="status"></div>
<div id="result"></div>
</div>
<script>
async function generate() {
const prompt = document.getElementById('prompt').value;
const size = document.getElementById('size').value;
const btn = document.getElementById('genBtn');
const status = document.getElementById('status');
const resultDiv = document.getElementById('result');
btn.disabled = true;
status.innerText = "Generating";
resultDiv.innerHTML = "";
try {
const response = await fetch('/v1/images/generations', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
prompt: prompt,
n: 1,
size: size,
response_format: "b64_json"
})
});
const jsonResponse = await response.json();
if (jsonResponse.data && jsonResponse.data.length > 0) {
const b64Data = jsonResponse.data[0].b64_json;
const imgSrc = `data:image/png;base64,${b64Data}`;
resultDiv.innerHTML = `
<img src="${imgSrc}" alt="Generated Image">
<br>
<a href="${imgSrc}" download="generated.png" style="display:inline-block; margin-top:10px;">SAVE</a>
`;
status.innerText = "DONE!!";
} else {
throw new Error("Failed to generate image");
}
} catch (err) {
console.error(err);
status.innerText = "Error: " + err.message;
} finally {
btn.disabled = false;
}
}
</script>
</body>
</html>execução
Inicialização do servidor
Inicie o servidor com o seguinte comando.
sd-server.exe --listen-port 8888 --serve-html-path [caminho para o HTML criado] -s -1 Informações do modelo
As informações do modelo são fornecidas por meio de ‘-m caminhoDoModelo’, etc. Esses são os mesmos argumentos de inicialização usados com o sd-cli.exe.
A opção -s -1 especifica que uma semente aleatória deve ser usada. Como a semente não pode ser especificada a partir do HTML, uma semente aleatória é usada em seu lugar.
Assim que iniciar, no seu navegador… http://127.0.0.1:8888/ Acesse esta página.
Assim que a imagem abaixo aparecer, insira o texto solicitado e clique em Gerar para gerar a imagem.

A imagem será exibida conforme mostrado abaixo assim que for gerada. Observe que ela não será salva localmente.

Exemplo de parâmetro de inicialização
Parâmetros de inicialização no sd-cli
sd-cli -m Caminho do modelo -p 'um gato adorável' -s -1
Parâmetros de inicialização para o servidor SD
sd-server.exe --listen-port 8888 --serve-html-path [caminho para o arquivo HTML criado] -s -1 -m Caminho do modelo
Consulte a página seguinte para obter informações sobre os parâmetros de inicialização usando o sd-cli.


コメント