NovelAi Helper AI图片生成, 可对接自建/colab在线运行的 Naifu api
-
非常棒的插件!群友非常喜欢!
另外给点建议,希望可以在config里面设置默认分辨率,可以对网页版tag的智能识别,免去英文引号的问题(因为很多人都是直接网上抄来的tag) -
@Aszzldj
分辨率可以在输入指令的时候附加上 -
佬 我这个以图生图出的图片跟原图八竿子打不着关系啊😂
-
-
1.1.0 加了 手动重载配置的功能
-
此回复已被删除! -
/nai
是官方啊api需要登录
/nai-fu
是本地/colab 搭建,需要配置api url -
此回复已被删除! -
此回复已被删除! -
@fuemo
把配置里的 timeout 调大 -
大佬请问每次重启之后都会重置config.yml 用的colab之后输入api url 然后reload 之后用naifu就提示Failed to connect to localhost/127.0.0.1:80是怎么回事
-
此回复已被删除! -
@DongTing
你的地址填写有问题 -
@cssxsh proxy: ''
doh: 'https://public.dns.iij.jp/dns-query'
ipv6: true
timeout: 30000
image: safe-diffusion
naifu_api: https://prisoner-absolute-steering-chairman.trycloudflare.com
image2image: true
是这样的吗 -
哦 地址忘记加引号了
-
好像是连接出错..
W/novelai-helper: Exception in executing command `[mirai:source:ids=[59208], internalIds=[-1014479715], from group 769970280 to 172895221 at 1666809556]/nai-fu [mirai:image:{7CD59D46-2178-FA06-0D3E-6A9D9909CCB0}.png, width=400, height=203, size=45674, type=PNG, isEmoji=true]` io.ktor.serialization.JsonConvertException: Illegal input at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:79) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1$2.emit(Emitters.kt:224) at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1.collect(SafeCollector.common.kt:113) at kotlinx.coroutines.flow.FlowKt__ReduceKt.firstOrNull(Reduce.kt:243) at kotlinx.coroutines.flow.FlowKt.firstOrNull(Unknown Source) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.ContentConverterKt.deserialize(ContentConverter.kt:128) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation.convertResponse$ktor_client_content_negotiation(ContentNegotiation.kt:185) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invokeSuspend(ContentNegotiation.kt:210) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(ContentNegotiation.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(ContentNegotiation.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.HttpClient$4.invokeSuspend(HttpClient.kt:173) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.HttpClient$4.invoke(HttpClient.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.HttpClient$4.invoke(HttpClient.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:91) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.compression.ContentEncoding$Companion$install$2.invokeSuspend(ContentEncoding.kt:144) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.compression.ContentEncoding$Companion$install$2.invoke(ContentEncoding.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.compression.ContentEncoding$Companion$install$2.invoke(ContentEncoding.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:91) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invokeSuspend(HttpCallValidator.kt:138) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(HttpCallValidator.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(HttpCallValidator.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:101) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.call.HttpClientCall.bodyNullable(HttpClientCall.kt:88) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiClient$http$1$3$1.invokeSuspend(NovelAiClient.kt:114) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiClient$http$1$3$1.invoke(NovelAiClient.kt) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiClient$http$1$3$1.invoke(NovelAiClient.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator.validateResponse(HttpCallValidator.kt:47) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator.access$validateResponse(HttpCallValidator.kt:40) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:148) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:138) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:112) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:14) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) Caused by: kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 2: Encountered an unknown key 'detail' at path: $ Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys. JSON input: {"detail":"Not Found"} at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24) at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32) at kotlinx.serialization.json.internal.AbstractJsonLexer.fail(AbstractJsonLexer.kt:528) at kotlinx.serialization.json.internal.AbstractJsonLexer.failOnUnknownKey(AbstractJsonLexer.kt:523) at kotlinx.serialization.json.internal.StreamingJsonDecoder.handleUnknown(StreamingJsonDecoder.kt:201) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeObjectIndex(StreamingJsonDecoder.kt:187) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeElementIndex(StreamingJsonDecoder.kt:121) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiApiError$$serializer.deserialize(NovelAiApiError.kt:5) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiApiError$$serializer.deserialize(NovelAiApiError.kt:5) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38) at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:71) ... 49 more
-
@蔚蓝621 在 NovelAi Helper AI图片生成, 可对接自建/colab在线运行的 Naifu api 中说:
W/novelai-helper: Exception in executing command
[mirai:source:ids=[59208], internalIds=[-1014479715], from group 769970280 to 172895221 at 1666809556]/nai-fu [mirai:image:{7CD59D46-2178-FA06-0D3E-6A9D9909CCB0}.png, width=400, height=203, size=45674, type=PNG, isEmoji=true]
你最好附加一个 空tag 给 指令
比如/nai-fu "," [图片]
,","
就是空tag -
@fuemo
cloudflare 提供的服务偶尔会出现请求超时,可换用 bore 隧道
这是 naifu 在 colab 第3步里的原话,你可以试试 -
@cssxsh,怎么加都报错
I/novelai-helper: generate image seed: 2421621984, tags: ,beautiful,detailed,eyes,boy 2022-10-27 18:56:43 W/novelai-helper: Exception in executing command `[mirai:source:ids=[59263], internalIds=[-520650410], from group 769970280 to 172895221 at 1666868201]/nai-fu ,beautiful,detailed,eyes,boy` io.ktor.serialization.JsonConvertException: Illegal input at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:79) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1$2.emit(Emitters.kt:224) at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:115) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1.collect(SafeCollector.common.kt:113) at kotlinx.coroutines.flow.FlowKt__ReduceKt.firstOrNull(Reduce.kt:243) at kotlinx.coroutines.flow.FlowKt.firstOrNull(Unknown Source) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.ContentConverterKt.deserialize(ContentConverter.kt:128) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation.convertResponse$ktor_client_content_negotiation(ContentNegotiation.kt:185) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invokeSuspend(ContentNegotiation.kt:210) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(ContentNegotiation.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(ContentNegotiation.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.HttpClient$4.invokeSuspend(HttpClient.kt:173) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.HttpClient$4.invoke(HttpClient.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.HttpClient$4.invoke(HttpClient.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:91) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.compression.ContentEncoding$Companion$install$2.invokeSuspend(ContentEncoding.kt:144) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.compression.ContentEncoding$Companion$install$2.invoke(ContentEncoding.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.compression.ContentEncoding$Companion$install$2.invoke(ContentEncoding.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:91) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invokeSuspend(HttpCallValidator.kt:138) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(HttpCallValidator.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(HttpCallValidator.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:101) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.call.HttpClientCall.bodyNullable(HttpClientCall.kt:88) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiClient$http$1$3$1.invokeSuspend(NovelAiClient.kt:114) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiClient$http$1$3$1.invoke(NovelAiClient.kt) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiClient$http$1$3$1.invoke(NovelAiClient.kt) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator.validateResponse(HttpCallValidator.kt:47) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator.access$validateResponse(HttpCallValidator.kt:40) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.client.plugins.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:148) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:138) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:112) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:14) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) Caused by: kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 2: Encountered an unknown key 'detail' at path: $ Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys. JSON input: {"detail":"Not Found"} at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24) at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:32) at kotlinx.serialization.json.internal.AbstractJsonLexer.fail(AbstractJsonLexer.kt:528) at kotlinx.serialization.json.internal.AbstractJsonLexer.failOnUnknownKey(AbstractJsonLexer.kt:523) at kotlinx.serialization.json.internal.StreamingJsonDecoder.handleUnknown(StreamingJsonDecoder.kt:201) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeObjectIndex(StreamingJsonDecoder.kt:187) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeElementIndex(StreamingJsonDecoder.kt:121) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiApiError$$serializer.deserialize(NovelAiApiError.kt:5) at novelai-helper-1.1.0.mirai2.jar//xyz.cssxsh.novelai.NovelAiApiError$$serializer.deserialize(NovelAiApiError.kt:5) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:38) at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100) at novelai-helper-1.1.0.mirai2.jar[private]//io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:71) ... 49 more
-
@蔚蓝621
不能复现,顺便你的逗号填写错了,应该是英文逗号,
而且如果要原文输入(即用逗号做分隔符),应该带上"
双引号